我想在服务器上为加密的 PDF 生成证书(目前是自签名的)。我感兴趣的是如何使用 TCPDF 实现这一点的工作流程。
我做了什么:
1)生成密钥:
openssl req -x509 -nodes -days 365000 -newkey rsa:1024
openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
.crt
2)然后用-file生成PDF
3) 然后我启动了 acrobat reader 并安装了证书 ( tcpdf.p12
)。我使用了文档->安全设置->数字身份证
4) 我可以导入安全设置,但仍然无法打开 PDF。不知道我做得对不对?acrobat reader 9.5.4 打开一个输入密码的对话框会发生什么。我输入密码并出现错误 -> 未知错误 -> CRecipientList-218
5)我使用的代码(基本相同)
$certificate = 'file://../tcpdf.crt';
$info = array(
'Name' => 'TCPDF',
'Location' => 'Office',
'Reason' => 'Testing TCPDF',
'ContactInfo' => 'http://www.tcpdf.org',
);
$pdf->setSignature($certificate, $certificate, 'tcpdfdemo', '', 2, $info);
$pdf->SetProtection($permissions=array('print', 'copy'), $user_pass='', owner_pass=null, $mode=1, $pubkeys=array(array('c' => 'file://../tcpdf.crt', 'p' => array('print'))));
我结合了以下示例:
http://www.tcpdf.org/examples/example_052.phps
http://www.tcpdf.org/examples/example_016.phps
PS:我知道这是一个非常实际的例子。只是认为更容易理解我正在执行的步骤。
问题:
关于如何(!)处理带有加密的 PDF 证书的一般工作流程是否正确?
当我生成
.p12
文件时,我必须提供该文件的密码,我稍后在将证书导入 acrobat 时使用该密码。我之所以问,是因为我也有可能“在生成时”提供密码。如果工作流程是正确的......我该如何解决这个问题?