gpt4 book ai didi

c# 验证 CRL 列表中的证书

转载 作者:太空狗 更新时间:2023-10-29 21:59:42 27 4
gpt4 key购买 nike

如何以编程方式检查某个证书是否已从其 CA CRL 列表中吊销?

我这样做:

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
ch.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
ch.ChainPolicy.UrlRetrievalTimeout = new TimeSpan(1000);
ch.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;
ch.ChainPolicy.VerificationTime = DateTime.Now;
ch.Build(certificate);
foreach (X509ChainStatus s in ch.ChainStatus)
{
string str = s.Status.ToString();
Console.WriteLine("str: " + str);
}
X509Store store = new X509Store(StoreName.Disallowed, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
bool isRevoked = store.Certificates.Contains(certificate);
store.Close();
return !isRevoked && certificate.Verify();

然后我得到“str: RevokedStatusUnknown”。仅当我在撤销证书后等待数小时 -> 状态返回为已撤销,尽管我在撤销证书后立即发布了 CRL。为什么它不立即访问 CRL?

最佳答案

尝试运行以下 MS 命令。

   certutil -urlcache * delete

Windows 缓存证书吊销状态一段时间,使用上述命令将刷新缓存。

关于c# 验证 CRL 列表中的证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2147889/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com