Php 避免在创建openssl签名时重新读取pem文件

Php 避免在创建openssl签名时重新读取pem文件,php,openssl,Php,Openssl,我使用与标准openssl_pkcs7_sign()示例类似的简单php代码在一个循环中对许多邮件进行签名 问题是这段代码太过I/O密集。这将读取相同的证书并在循环中调用openssl函数 我是否可以读取内存中的证书并在每次签名时使用 这是脚本的相关部分 <?php $headers = array( "From: Ram <ram@netcore.co.in>", "Subject" => "Signed mail"); /* All the recipien

我使用与标准openssl_pkcs7_sign()示例类似的简单php代码在一个循环中对许多邮件进行签名

问题是这段代码太过I/O密集。这将读取相同的证书并在循环中调用openssl函数

我是否可以读取内存中的证书并在每次签名时使用

这是脚本的相关部分

<?php

$headers =  array( "From: Ram <ram@netcore.co.in>", "Subject" => "Signed mail");


/* All the recipients who will get the mail */
$users = array ( 'ram@netcore.co.in' , 'aa@netcore.co.in','bb@netcore.co.in');

foreach ($users as $rcpt){
  $headers['To'] = $rcpt;

openssl_pkcs7_sign($rcpt."infile.txt",
                   "outfile.txt","file://noPassPrivatePublicKey.pem",
                     array("file://noPassPrivatePublicKey.pem", ""),
                     $headers);

  /* Now make an smtp connection and send the mail */
  send_mail_to_smtp($from,$rcpt,"outfile.txt");
}

?>


在邮件上签名一次,然后将其发送给所有收件人。S/MIME仅对邮件正文进行签名。因此,之后设置To:标题不会使签名无效。

否每个收件人的实际邮件都不同。这些是个人帐户声明将证书保存到RAM磁盘(tmpfs)。编辑问题以使初始正确答案为假并证明投票否决答案是正确的。如果将示例代码简化得太多,那不是我的错。