c# - 为什么我的证书没有得到验证?

标签 c# .net certificate x509

我的网络上有一个证书服务器,在链中它有两台服务器位于它之前,因此当我在 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/

相关文章:

.net - WCF - 证书...可能没有能够进行 key 交换的私钥

c# - smtp 客户端 "failure sending mail"

c# - 如何使用 C# 过滤具有多列值的数据表

c# - 直接从 C# 连接对象中提取 MySql 连接 ID

c# - 如何/在何处使用 .NET DLL 运送第三方库?

.net - 在.NET项目中使用COM组件而不使用GAC

c++ - 在 C++ 中生成证书请求

c# - "An entity object cannot be referenced by multiple instances of IEntityChangeTracker"当我在多对多情况下插入时?

c# 在不使用 using{} 的情况下写入文件

.net - 具有错误值的数字签名