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