SSL certificate pre-fetch .NET SSL certificate pre-fetch .NET windows windows

SSL certificate pre-fetch .NET


I've just tried this, which "works on my machine (tm)".

It returns the text string representing the expiry date on the server's certificate, and requires an actual hit to be made on the web site.

private string GetSSLExpiryDate(string url){    Uri u = new Uri(url);    ServicePoint sp = ServicePointManager.FindServicePoint(u);    string groupName = Guid.NewGuid().ToString();    HttpWebRequest req = HttpWebRequest.Create(u) as HttpWebRequest;    req.ConnectionGroupName = groupName;    using (WebResponse resp = req.GetResponse())    {        // Ignore response, and close the response.    }    sp.CloseConnectionGroup(groupName);    // Implement favourite null check pattern here on sp.Certificate    string expiryDate = sp.Certificate.GetExpirationDateString();    return expiryDate;}

I'm afraid I don't know all the rights and wrongs of using ServicePoint, and any other hoops that you might need to jump through, but you do get an SSL expiry date for the actual web site you want to know about.

EDIT:ensure the "url" parameter use the https:// protocol.

e.g. string contosoExpiry = GetSSLExpiryData("https://www.contoso.com/");