我必须在 c# 中开发一个应用程序来获取 SSL 证书信息,如到期日期、颁发者等基于我提供的 DNS(比如 *.google.com),以便如果到期日期临近,我可以主动处理它。如果我将 DNS 提供为 *.google.com,那么我需要获取该域的 SSL 证书信息的详细信息。
我尝试遵循http://awesomeideas.net/page/Cert-Expiry-Check.aspx,但我觉得它适用于存储在本地系统中的证书。我也尝试使用 HttpWebRequest 来获取 SSL 证书的详细信息,但它要求我输入一个有效的 URI,在我的情况下这是不可用的。我只有 DNS 名称
下面是我用来使用 HttpWebRequest 获取信息的代码。但它要求我输入 https://*.domain.com 类型的有效 URI
Uri uri = new Uri(DNSEntry);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = WebRequestMethods.Http.Get;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
X509Certificate cert1 = request.ServicePoint.Certificate;
X509Certificate2 cert = new X509Certificate2(cert1);
DateTime dtCertExpiry = Convert.ToDateTime(cert.NotAfter.ToString());