我正在尝试在 Microsoft Word for Microsoft 365 MSO(版本 2110)中向文档添加数字签名。签名时,Word 显示:
无法验证您选择的证书。请检查您的网络连接。
无论如何我都可以签署该文件,但是“可恢复签名“签名栏显示”。详细信息(再次说明):
无法验证签名者的证书,请稍后重试或检查您的网络连接。
研究表明,这个问题似乎相当普遍。在大多数情况下,证书链中的证书不受信任。对我来说,证书(证书链)显示为有效。
我的证书链由根 CA 和我用于签署文档的证书组成。两个证书都是自创建/自签名的;根 CA 是作为证书链之一安装的受信任的根证书颁发机构我可以看到该链按预期受到信任。这意味着两个证书均有效(未过期、未被撤销)。我的互联网连接正常,系统时钟正确。
不涉及 CRL。但是,为了确保 Word 不期望 CRL,我尝试了类似的设置,使用指定 CRL 分发点的中间 CA。我可以验证 Word 是否请求指定的 CRL(不带撤销的 CRL)。结果与上面描述的简化场景相同。
问题:
- 为什么在这种情况下实际上需要互联网连接?Word 实际上会检查什么(在线)?
- 是什么导致了“可恢复签名”错误?如何使自签名证书 100% 被接受且没有警告?
更新: 在复制我的(John Doe)证书后个人的到值得信赖的人,错误消失。这又引发了两个新问题:为什么 Word 不信任我的个人的证书,更重要的是,为什么我已经信任证书颁发者(CA)了,还要信任个别证书(人员)?我认为这与信任链原则相矛盾。我想避免必须信任单个证书,这就是我拥有 CA 的原因。
截图和证书详细信息:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: [removed]
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = DE, O = [removed], CN = [removed] Root CA
Validity
Not Before: Nov 24 12:49:00 2021 GMT
Not After : Dec 24 12:49:00 2022 GMT
Subject: CN = John Doe, emailAddress = [email protected]
Subject Public Key Info:
[removed]
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
[removed]
X509v3 Key Usage:
Digital Signature, Key Encipherment, Data Encipherment
Netscape Cert Type:
SSL Client, S/MIME
Signature Algorithm: sha256WithRSAEncryption
[removed]
-----BEGIN CERTIFICATE-----
[removed]
-----END CERTIFICATE-----
答案1
我可以弄清楚发生了什么,现在就可以开始工作了。结论:Word 不接受无法撤销的证书因为证书中没有指定 CRL 分发点。
错误消息“检查您的网络连接”如果没有指定 CRL 分发点,则可能会产生误导,因为您不会想到那时需要检查某些东西。
一旦我指定了 CRL,它最终就会起作用。根 CA作为受信任的根证书安装,并且所有派生证书都经过验证且没有错误。
我的陷阱是:CRL 分发点必须在发布证书,而不是颁发者的证书。在所描述的场景中
- 这根 CA没有指定任何 CRL 分发点(可能与大多数 Root CA 一样)。
- 最终实例证书约翰·多伊指定 CRL 分发点,其中根 CA发布其 CRL。
如果使用中间 CA,则必须维护和指定两个 CRL:一个用于由根 CA另一份是中级CA。