【问题标题】:Get detailed explanation for invalid SSL certificate (.NET)获取无效 SSL 证书 (.NET) 的详细说明
【发布时间】:2019-09-11 00:39:32
【问题描述】:

我的服务对客户网站进行健康 ping 并报告他们的健康状况。网站关闭的常见问题之一是 SSL 证书有问题。

ServicePointManager.ServerCertificateValidationCallback 中,可以访问证书、链等并进行手动检查(当 SslPolicyErrors 不是 None 时)。

我想知道是否有一个库/方法可以解释问题所在(例如,证书已过期或根证书不受信任等)

【问题讨论】:

标签: c# ssl httpclient


【解决方案1】:

X509Chain class 可以详细解释为什么某些证书被视为无效。

  var errors = new List<string>();
  var chain = new X509Chain();
  // certificate is the one you want to check
  chain.Build(certificate);

  // traverse certificate chain
  foreach (var chainElement in chain.ChainElements)
  {
    // ChainElementStatus contains validation errors
    foreach (var status in chainElement.ChainElementStatus)
    {
      errors.Add(status.Status + " " + chainElement.Certificate + ": " + status.StatusInformation.Trim());
    }
  }

这类似于X509Certificate2.Verify 所做的(如果您查看源代码),尽管验证只返回真或假。

【讨论】:

  • 像魅力一样工作!正是我需要的。谢谢!
猜你喜欢
  • 2011-12-13
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 2012-07-06
相关资源
最近更新 更多