一个证书可以有多个链和多个自签名根吗?

信息安全 视窗 证书 公钥基础设施 证书颁发机构
2021-08-31 21:42:12

以下MSFT 文档有这一段:

  1. 所有可能的证书链都是使用本地缓存的证书构建的。如果没有一个证书链以自签名证书结尾,CryptoAPI 然后选择最佳链并尝试检索授权信息访问扩展中指定的颁发者证书以完成该链。重复此过程,直到构建到自签名证书的链。

  2. 对于在受信任的根存储中以自签名证书结尾的每个链,执行吊销检查。

这是否意味着一个证书可以有多个“链”。这会是什么样子,它会在哪里使用?

1个回答

创建多个根时

这适用于 CA 层次结构中的每个证书。

只是为了让事情更有趣,吊销列表本身 (CRL/OCSP) 是经过签名的,并且可能有它自己的 PKI。他们也可能有自己的一套钥匙。(验证验证者?)

换句话说,

  • 在验证 CRL、Delta 和 OCSP 响应时发现的链也计入发现的 CA 根。(请注意,可以通过 OCSP 验证来抑制id-pkix-ocsp-nocheck

CA 架构对链构建过程有影响。在不同的证书链被认为有效之前,链接引擎会构建所有可能使用正在验证的证书的链。如果最终实体证书是由新设置的 CA 生成的,则证书链很简单。但是,由更新的 CA 颁发的证书或在颁发 CA 和另一个 CA 之间存在交叉证书的情况下,可能存在多个证书链。

证书链的整个图是构建的,然后按链的“质量”排序。给定最终证书的最佳质量链作为默认链返回给调用应用程序。

以下是单层、N 层、交叉和桥接 PKI 中的验证过程图示

单一 CA

单一 CA

N 层

N层

交叉信任 CA

跨 CA

桥CA

桥CA

有关PKI 拓扑和证书续订的更多信息,请参阅本文底部