到目前为止,我能够获得SSL证书的网页的到期日期,在那里我不必使用用户名和密码进行授权:
class Program
{
static void ReadExpirDate()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://google.com");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Close();
X509Certificate cert = request.ServicePoint.Certificate;
X509Certificate2 cert2 = new X509Certificate2(cert);
string cedate = cert2.GetExpirationDateString();
Console.WriteLine(cedate);
}
}
但是,如果我试图获取一个网页的到期日期,我需要用用户名和密码授权才能访问它,我得到一个System.Net.WebException“error:(401)Unauthorized”异常。有没有可能的方法来获取SSL证书的到期日期?
3条答案
按热度按时间yqlxgs2m1#
这一行:
实际上是在调用指定的未经授权的URL,这就是抛出异常的地方,如果你这样做,那么你可以使用返回的
request
中的Certificate
属性,尽管Exception
:这段代码可能会受到一些更好的异常处理和重构的影响,但它应该可以工作。
6ju8rftf2#
使用
ServerCertificateValidationCallback
在授权前获取证书ssgvzors3#
HttpWebRequest现在已经过时了。我最终使用了以下代码: