【发布时间】:2018-12-14 23:51:16
【问题描述】:
我正在为我的公司更新一个项目,其中有一个部分我们需要使用我们的证书文件对 pdf 进行数字签名。在这种情况下,我应该使用来自 PHP 的更新库更改签署此 pdf 的脚本。
在旧代码中,我们使用另一个脚本来实现这一点,我们必须使用 .p12 文件 + 字符串。使用这个旧脚本,当您使用 Acrobat Reader DC 打开创建的 pdf 时,我们会得到下一张图片,您可以在其中看到“签名且所有签名都有效”。
在新脚本中,我使用下一个示例:
https://tcpdf.org/examples/example_052/
为了能够将此示例与我的证书一起应用,我必须将我的 pfx 文件证书(“.p12”)转换为 2 种“.pem”,然后抛出以下命令行:
openssl pkcs12 -in myOldCertificate.p12 -clcerts -nokeys -out publicCert.pem ->问我“输入导入密码”
openssl pkcs12 -in myOldCertificate.p12 -nocerts -out privateKey_cert.pem -> 询问我“输入导入密码”以及“输入 PEM 密码”
所以最后,我只是从下载的示例 52 中更改了第 89 行。
//设置文档签名
$pdf->setSignature('file:///var/www/html/publicCert.pem', 'file:///var/www/html/privateKey_cert.pem', 'xxxxxx', '', 2、$信息); -> 在“xxxxx”中,我写了与导入密码相同的字符串,为了以防万一,PEM 密码也相同。
当我创建数字签名的 pdf 并使用 Acrobat Reader DC 打开时,您可以看到下一张图片:
我担心是因为我可以看到“由我的公司认证”,看起来一切正常,但没有绿色勾号,我不确定它是否完全有效。您必须认为我需要最安全的方法来验证此 pdf 的真实性和完整性。
【问题讨论】:
-
对我的问题投了反对票的直觉,能否请评论一下为什么他认为这是一个糟糕的问题?
标签: php pdf openssl digital-signature tcpdf