我的网络上有一个证书服务器,在链中它有两台服务器位于它之前,因此当我在 MMC 中查看证书的证书路径时,我会看到上面有两个证书。最初,验证此证书不起作用,因为在使用 X509Chain.Build() 方法的自定义验证器期间出现撤销错误。因此,由于我意识到生成的证书不包含任何 CRL 分发点,所以我让证书服务器生成它们,因此现在在我的证书服务器中使用复选框“包含在已颁发证书的 CDP 扩展中”,证书服务器会生成一个我看到了该证书的 HTTP CRL 分发点。我什至可以访问它包含的 URL 并下载 CRL 文件。现在的问题是,当我尝试在本地系统帐户下运行的服务应用程序中验证此证书时,在发出 X509Chain 构建后,我在 X509Chain.ChainStatus 列表中收到以下错误:
Status: OfflineRevocation
StatusInformation: The revocation function was unable to check revocation because the revocation server was offline.
使用在我的管理员帐户下运行的控制台应用程序时,出现以下错误:
Status: RevocationStatusUnknown
StatusInformation: The revocation function was unable to check revocation for the certificate.
有谁知道我下一步可以尝试如何撤销我的证书,以便我可以实际验证它?我在 ping 我的证书服务器时似乎也没有遇到任何问题。
最佳答案
要追踪您的问题,我建议您使用 certutil.exe
来验证您的证书并查看正在采取的步骤。请参阅此处的示例:
正如您所提到的,您的问题是 CRL 已过期。以下是一些讨论 CRL 以及如何发布/重新发布它们的链接。
关于c# - 为什么我的证书没有得到验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18080017/