我在寫一個實用程序,它可以讓我監視我們網站的健康狀況。這包含一系列可以針對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