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

时间:2015-07-27 20:29:44

标签: c# ssl ssl-certificate

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

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

1 个答案:

答案 0 :(得分:2)

也许你可以挂钩证书验证回调来检查证书的属性:

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