c# 如何从不受信任的服务器读取证书信息

标签 c# ssl ssl-certificate

我发现了几个关于如何从 URL 检索证书信息的主题,例如这一个:https://stackoverflow.com/a/2941934/1682946 .

但是所有这些解决方案只有在证书可信的情况下才有效。否则,在调用 request.GetResponse() 时会出现异常。 但是,如果证书不受信任,我需要获取证书颁发者和过期数据。 我想向我的应用程序的用户显示错误并向他提供有关所提供的 ssl 证书的信息。

最佳答案

也许您可以 Hook 证书验证回调来检查证书的属性:

request.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => { 
    // investigate certificate parameter
    X509Certificate2 x509 = new X509Certificate2(certificate);
    Console.WriteLine("Certificate expired on: {0}", x509.NotAfter);
    return true; // true to bypass, false otherwise
};
...
request.GetResponse();

关于c# 如何从不受信任的服务器读取证书信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31662679/

相关文章:

c# - 获取表的特定列名

python-2.7 - cURL 与请求(SSL 问题?)

ssl - jMeter 中的 javax.net.ssl.SSLException

c# - 我如何知道 SQL Server 客户端连接池的实际利用率?

c# - 在现有项目上创建 View 模型

c# - MassTransit 消息类型不得为系统类型异常

c# - System.Web.Services.Protocols.SoapHttpClientProtocol 使用什么版本的 SSL/TLS?

ssl - 有没有办法将配置传递给 Nginx Ingress Controller

https - 如何执行来自Phoenix的HTTPS请求并忽略CA错误

java - TLS 服务器接受来自客户端的连接,即使服务器信任库中不存在客户端证书?为什么?