根据下次日期设置为几年前的 CRL 验证撤销策略设置为在线的 X509Chain 由于撤销检查而失败

问题描述 投票:0回答:1

我设置了这个链验证:

var chain = new X509Chain();
chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust;
chain.ChainPolicy.CustomTrustStore.Add(_options.CA);
chain.ChainPolicy.CustomTrustStore.Add(_options.Intermediate);

我想打电话给哪里

chain.Build(clientCertificate);

在客户端证书上。我需要这样做:

chain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck;

让它发挥作用。我知道我的自定义存储中的证书指向有效的 CRL。我什至可以下载它,但是当我下载它时,我可以看到 CRL 的下一个日期已经过去了(2018 年 1 月),在我看来,这使得 CRL 无效。

我的两个问题是:

  • 当我验证将
    RevocationMode
    设置为
    NoCheck
    以外的内容的证书并且 CRL 具有
    Next date
    <
    DateTime.UtcNow
    (即:
    Next date
    是过去的内容)时,是否会无法通过该证书的吊销检查背景?
  • 我使用自定义根存储有关系吗?或者只有当我在 Windows 中使用证书存储时撤销才有效?

我正在使用

.NET 7
(在 Windows 和 Linux 上都尝试过上述操作)。

ssl-certificate .net-7.0 client-certificates x509certificate2
1个回答
0
投票

当我验证证书时,RevitationMode 设置为 NoCheck 以外的值,并且 CRL 有下一个日期 < DateTime.UtcNow (that is: Next date is in the past), will it fail the revocation check on that background?

不。在这种情况下,证书链引擎将跳过任何吊销检查。

我使用自定义根存储有关系吗?或者只有当我在 Windows 中使用证书存储时撤销才有效?

只要自定义存储受到链接引擎的信任(基于您的代码)就没有关系。

© www.soinside.com 2019 - 2024. All rights reserved.