我的服务对客户网站进行健康检查并报告他们的健康状况。网站宕机的常见问题之一是 SSL 证书出现问题。
在ServicePointManager.ServerCertificateValidationCallback可以访问证书、链等并进行手动检查(当 SslPolicyErrors 不是 None 时)。
我想知道是否有一个库/方法可以解释错误(例如,证书已过期或根证书不受信任等)
最佳答案
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确实如此(如果您查看源代码),尽管 Verify 仅返回 true 或 false。
关于c# - 获取无效 SSL 证书 (.NET) 的详细说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57879678/