我在写一个实用程序,它可以让我监视我们网站的健康状况。这包含一系列可以针对Web应用程序运行的验证任务。其中一项测试是预测特定SSL证书的到期日期。SSL证书预取.NET
我正在寻找一种方法来预先获取安装在使用.NET或WINAPI的网站上的SSL证书,以便我可以验证与特定网站关联的证书的过期日期。
我可以做到这一点的一种方式是缓存证书,当它们在ServicePointManager.ServerCertificateValidationCallback处理程序中进行验证,然后将它们与配置的网站进行匹配时,但这看起来有点冒失。另一种方法是使用网站证书配置应用程序,但如果可以的话,我宁愿避免这种情况,以最大限度地减少配置。
什么是最简单的方式来下载与使用.NET的网站相关的SSL证书,以便我可以检查证书包含的信息以验证它?
编辑:
要在答案下面延伸没有必要手动创建之前创建请求的的ServicePoint。它是在请求对象上生成的,作为执行请求的一部分。
private static string GetSSLExpiration(string url)
{
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
using (WebResponse response = request.GetResponse()) { }
if (request.ServicePoint.Certificate != null)
{
return request.ServicePoint.Certificate.GetExpirationDateString();
}
else
{
return string.Empty;
}
}
真棒问题:) – 2012-02-28 05:09:01