【问题标题】:Error when signing PDF document with Azure Key Vault + Azure Function Apps + CA Certificate使用 Azure Key Vault + Azure Function Apps + CA 证书签署 PDF 文档时出错
【发布时间】:2017-11-08 08:47:15
【问题描述】:

我已经构建了一个使用 iTextSharp 签署 PDF 文档的 Azure 函数应用。 此函数应用使用存储在 Azure Key Vault 中的证书。

使用自签名证书时,例如在该保险库内或我的本地计算机上生成的证书,一切正常,我可以在 PDF 文件中看到签名详细信息,但是当我尝试使用来自 CA 的证书时,例如,我将 COMODO 或 digiCert 中的 .PFX 文件导入到库中,PDF 签名出现错误。

意思是,当我打开已签名的 PDF 文件并单击签名详细信息时,我收到错误消息:

签名验证时出错。

验证时遇到错误:

内部密码库错误。

错误代码:0x2726

我试图将工作证书与 CA 证书进行比较,我发现的唯一区别是工作证书的密钥标记了“加密”密钥,而 CA 的密钥没有。此标志不可编辑,或者我只是找不到控制此标志的方法。

请指教。

编辑: 请在下面找到示例文件的链接。

Working Azure key vault Certificate generated PDF

Invalid CA Certificate generated PDF

必须下载文件并在 Acrobat 中打开才能看到签名。

【问题讨论】:

  • 请与该问题共享一个示例签名的 PDF。
  • 我添加了 2 个样本,一个正在工作,一个有问题。谢谢。

标签: azure itext digital-signature azure-functions azure-keyvault


【解决方案1】:

您的 PDF 确实由 CA 证书签名,即可用于颁发其他证书的证书。 (当我阅读您的问题时,我认为您的签名者证书只是 由适当的 CA 证书颁发,而不是 是 CA 证书。)

特别是它有一个带有值的关键用法扩展:

  • 数字签名,
  • keyCertSign 和
  • cRLSign.

另一方面,Adobe 只接受具有以下一项或多项的签名者证书:

  • 不可否认
  • 数字签名

如果存在密钥使用扩展,例如授予Adobe 的Digital Signatures Guide for IT - Appendix A: Changes Across Releases。因此,您的证书还具有密钥使用值 keyCertSign 和 cRLSign 的事实使其不适合签署 PDF(或者更确切地说,不适合使用它签署的 PDF 以由 Adob​​e 软件验证)。

不过,由于您的证书可以用作证书颁发者,您可以使用它颁发一个专用的签名者证书,该证书满足 Adob​​e 对可接受的签名者证书的要求。不过,不要忘记提供和宣传 CRL,以允许进行撤销检查!


【讨论】:

  • 非常感谢您提供的非常详细的回答!真的很感激!只是为了确保我理解正确,CA 证书具有 keyCertSign 和 cRLSign,这就是导致密码库错误的原因,而自签名的 azure 生成的证书没有这些以及它工作的原因?对于新手问题,抱歉,证书主题对我来说真的很新。如何使用我的证书颁发专用证书?或者,我如何获得由适当的 CA 证书而不是 CA 证书颁发的证书?谢谢!
  • “只是为了确保我理解正确,” - 是的。 Adobe 实际上想要最终用户证书进行签名,而不是 ca 证书。 “如何使用我的证书颁发专用证书” - 有许多用于 pki 管理的工具,例如 xpki,用于此类任务。 “我如何获得由适当的 CA 证书而不是 CA 证书颁发的证书?” - 实际上你有这样的 ca 证书是令人惊讶的。普通证书应该更容易获得。
  • 感谢您的快速回复。我找了好几天才找到我需要的证书,最终digiCert和Comodo的支持告诉我,这就是我需要的证书。我不需要这种类型的证书,因为我不必颁发其他证书,只需使用一个来签署 PDF 文档。您是否有链接或确切的证书类型/名称可以使它对我有用?我不知道要购买哪个证书!再次,非常感谢。我在这个问题上花费了几十个小时,并与支持代表聊天...... :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
  • 2021-11-06
  • 2020-01-27
  • 2019-02-16
  • 2020-07-10
  • 2017-12-11
相关资源
最近更新 更多