我的问题类似于这个问题。
我正在尝试仅使用本地CRL检查吊销列表。
我正在使用带有以下参数的X509Chain.Build():
var chainMachine = new X509Chain(true);
chainMachine.ChainPolicy.RevocationFlag = X509RevocationFlag.EntireChain;
chainMachine.ChainPolicy.UrlRetrievalTimeout = TimeSpan.FromSeconds(30);
chainMachine.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag;
chainMachine.ChainPolicy.VerificationTime = DateTime.Now;
chainMachine.ChainPolicy.RevocationMode = X509RevocationMode.Offline;
但是我收到了以下错误:
- RevocationStatusUnknown => 撤销功能无法检查证书的撤销状态。
- OfflineRevocation => 因为撤销服务器离线,撤销功能无法检查证书的撤销状态。
奇怪的是,一旦我尝试在线检查撤销列表(结果会更新CRL),问题就得到解决。因此看起来,一旦缓存中有任何东西,就不能再复现此问题。
我认为可能错误消息不正确,实际上当缓存为空时,会出现某些异常导致弹出此消息,或者可能存在某个标志,指示缓存是否有时已更新,如果从未更新,则尝试从外部服务器获取信息。
有人能指出这个问题的原因吗?