使用 Azure Key Vault + Azure Function Apps + CA 证书签署 PDF 文档时出错
Error when signing PDF document with Azure Key Vault + Azure Function Apps + CA Certificate
我构建了一个使用 iTextSharp 签署 PDF 文档的 Azure 函数应用程序。
此函数应用使用存储在 Azure Key Vault 中的证书。
使用自签名证书时,例如在该保管库内或在我的本地计算机上生成的证书,一切正常,我可以在 PDF 文件中看到签名详细信息,但是当我尝试使用来自CA,例如,我将来自 COMODO 或 digiCert 的 .PFX 文件导入到保险库中,PDF 签名出现错误。
意思是,当我打开已签名的 PDF 文件并单击签名详细信息时,出现错误:
Error during signature verification.
Error encountered while validating:
Internal cryptographic library error.
Error Code: 0x2726
我试图将工作证书与 CA 证书进行比较,我发现的唯一区别是工作证书的密钥标记了 "Encrypt" 密钥,而 CA 证书没有.此标志不可编辑,或者我找不到控制此标志的方法。
请指教
已编辑:
请在下面找到示例文件的链接。
Working Azure key vault Certificate generated PDF
Invalid CA Certificate generated PDF
必须下载文件并在 Acrobat 中打开才能看到签名。
您的 PDF 确实由 CA 证书签名,即可用于颁发其他证书的证书。 (当我读到你的问题时,我认为你的签名者证书只是 由适当的 CA 证书颁发,而不是 是 CA 证书。)
特别是它有一个关键的使用扩展值:
- 数字签名,
- keyCertSign,并且
- cRLSign.
另一方面,Adobe 只接受具有以下一项或多项的签署者证书:
- 不可否认
- 数字签名
如果密钥使用扩展完全存在,例如Adobe 的 Digital Signatures Guide for IT - Appendix A: Changes Across Releases。因此,您的证书还具有密钥使用值 keyCertSign 和 cRLSign 的事实使其不适合签署 PDF(或更确切地说,不适用于使用它签署的 PDF,以便由 Adobe 软件验证)。
由于您的证书可以作为证书颁发者,不过,您可以使用它来颁发专用的签署者证书,它满足 Adobe可接受的签署者证书的要求。不过,不要忘记提供和公布 CRL,以允许撤销检查!
我构建了一个使用 iTextSharp 签署 PDF 文档的 Azure 函数应用程序。 此函数应用使用存储在 Azure Key Vault 中的证书。
使用自签名证书时,例如在该保管库内或在我的本地计算机上生成的证书,一切正常,我可以在 PDF 文件中看到签名详细信息,但是当我尝试使用来自CA,例如,我将来自 COMODO 或 digiCert 的 .PFX 文件导入到保险库中,PDF 签名出现错误。
意思是,当我打开已签名的 PDF 文件并单击签名详细信息时,出现错误:
Error during signature verification.
Error encountered while validating:
Internal cryptographic library error.
Error Code: 0x2726
我试图将工作证书与 CA 证书进行比较,我发现的唯一区别是工作证书的密钥标记了 "Encrypt" 密钥,而 CA 证书没有.此标志不可编辑,或者我找不到控制此标志的方法。
请指教
已编辑: 请在下面找到示例文件的链接。
Working Azure key vault Certificate generated PDF
Invalid CA Certificate generated PDF
必须下载文件并在 Acrobat 中打开才能看到签名。
您的 PDF 确实由 CA 证书签名,即可用于颁发其他证书的证书。 (当我读到你的问题时,我认为你的签名者证书只是 由适当的 CA 证书颁发,而不是 是 CA 证书。)
特别是它有一个关键的使用扩展值:
- 数字签名,
- keyCertSign,并且
- cRLSign.
另一方面,Adobe 只接受具有以下一项或多项的签署者证书:
- 不可否认
- 数字签名
如果密钥使用扩展完全存在,例如Adobe 的 Digital Signatures Guide for IT - Appendix A: Changes Across Releases。因此,您的证书还具有密钥使用值 keyCertSign 和 cRLSign 的事实使其不适合签署 PDF(或更确切地说,不适用于使用它签署的 PDF,以便由 Adobe 软件验证)。
由于您的证书可以作为证书颁发者,不过,您可以使用它来颁发专用的签署者证书,它满足 Adobe可接受的签署者证书的要求。不过,不要忘记提供和公布 CRL,以允许撤销检查!