我们可以根据多个 crl 服务器检查相同根 ca 的客户端证书吗(每个 crl 由相同的根 ca 生成)?

我们可以根据多个 crl 服务器检查相同根 ca 的客户端证书吗(每个 crl 由相同的根 ca 生成)?

证书具有 2 个 crl 分发点,均由同一根 ca 签名。crl 获取行为应该是什么?

获取的 CRL 应该连接还是覆盖?

我们可以根据多个 crl 服务器检查相同根 ca 的客户端证书吗(每个 crl 由相同的根 ca 生成)?

答案1

这取决于它们是否是单独的分发点,或者它们是否只是同一分发点中的单独 URL。

我的解释RFC 5280 第 4.2.1.13 节第 5 节

  • 单个“CRL 分发点”扩展可能有多个 DistributionPoint 项指向不同的 CRL,可能具有不同的 ReasonFlags(例如,一个 CRL 表示被取代的证书,另一个 CRL 表示被泄露的证书,即使规范建议不要这样做)——因此您需要检查全部DistributionPoints 并连接结果。

  • 但单个 DistributionPoint 可能有多个指向同一 CRL 的名称 (URL)。这些名称充当备择方案(例如冗余或多种协议),并且您只需检查每个 DistributionPoint 的一个 URL。

    如果 DistributionPointName 包含多个值,则每个名称都描述了获取相同 CRL 的不同机制。例如,可以通过 LDAP 和 HTTP 检索相同的 CRL。

例如,如果您有一个 CRL DP 扩展,其中包含:

CRLDistributionPoints {
    DistributionPoint {
        fullName [ URI "http://foo/foo.crl", URI "ldap://foo/foo.crl" ]
    },
    DistributionPoint {
        fullName [ URI "http://foo/bar.crl", URI "ldap://foo/bar.crl" ]
    }
}

那么您总共需要检查两个 CRL:任何一个“foo.crl”+任何一个“bar.crl”。

相关内容