pdf-generation - 代码签名证书和文档签名证书之间的区别

标签 pdf-generation tcpdf digital-certificate

我正在考虑获取文档签名证书来根据 Adob​​e 的 AATL 签署 PDF,但我注意到,例如,Digicert 对 Document Signing Certificate 收取的价格明显不同比 Code Signing Certificate 。我们计划使用该证书对 PDF 进行自动签名,因此我看不到 USB token (由文档签名证书提供)有那么有用。考虑到证书/私钥对均由同一 CA:Digicert 签名,并且位于 AATL 上(因此它们的根证书相同?)使用代码签名证书是否足以在 Adob​​e 阅读器上进行验证?

Digicert 的客户支持表示:

if you're using the certificate through your own software then a code signing certificate may work since it chains back to the trusted DigiCert root. I can't confirm whether or not the code signing signature will translate to a PDF however since we don't officially support PDF signing with a code signing certificate.

如果有人有这方面的经验,我将不胜感激。

最佳答案

这些代码签名证书很可能具有 extKeyUsage (2 5 29 37) 扩展,其值为 codeSigning (1 3 6 1 5 5 7 3 3) 并且可能还有commercialCodeSigning (1 3 6 1 4 1 311 2 1 22) 但没有允许其他用途的值。 (至少我手头的代码签名证书是这样。)

RFC 5280为扩展 key 用法扩展指定如果存在扩展,则证书必须仅用于指定的目的之一。

因此,如果相关证书中的扩展 key 用法按照上述方式设置,则使用此类代码签名证书来签署非代码会违反 X.509 公钥基础设施证书的基本规范。

关于你的核心问题

We plan to use the certificate to do automated signing of PDFs ... would using a code signing certificate be suffice to validate on Adobe readers?

Adobe Reader 很可能会拒绝使用代码签名证书生成的 PDF 签名,如果现在不这样做,将来的版本中很可能会拒绝。

关于pdf-generation - 代码签名证书和文档签名证书之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690476/

相关文章:

php - 在 TCPDF 中的字符串和边框之间放置填充

php - 如何将PDF内容的标题推到下一页

php - TCPDF - 将复选框设置为只读

c# - 具有有限用户升级功能的数字签名 MSI 仍会提示管理员

c# - ABCpdf - 为每个页面添加边距顶部并将页脚保持在一个 block 中

node.js - PDFKit,nodeJS合并两个PDF文件

jasper-reports - Bold 在 Jaspersoft Studio 中不适用于无衬线以外的字体

authentication - 为什么证书在 SSL 认证中不是 secret

已签名应用程序的 Windows 报告 "Unknown publisher"

pdf-generation - 如何从 pandoc 生成的 LaTeX 图形 block 中删除 `\centering` 标签?