【问题标题】:c# how to read the certificate information from an untrusted serverc# 如何从不受信任的服务器读取证书信息
【发布时间】:2015-07-27 20:29:44
【问题描述】:

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

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

【问题讨论】:

  • 您使用的是哪个版本的 .NET?
  • 刚切换到4.5.2

标签: c# ssl ssl-certificate


【解决方案1】:

也许您可以连接到证书验证回调以检查证书的属性:

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();

【讨论】:

  • 太棒了,谢谢,我自己也想过这个,但不知道我可以按要求做到这一点。我认为这是唯一的方法!
  • 回调在 .NET 4.5 的请求级别可用,所以这就是我问的原因:)
猜你喜欢
  • 2020-11-14
  • 2011-08-01
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 2014-11-29
  • 1970-01-01
  • 2012-02-26
  • 2012-05-21
相关资源
最近更新 更多