Tôi đang viết một tiện ích cho phép tôi theo dõi tình trạng của trang web của chúng tôi. Điều này bao gồm một loạt các nhiệm vụ xác thực mà tôi có thể chạy với ứng dụng web. Một trong các bài kiểm tra là dự đoán hết hạn của một chứng chỉ SSL cụ thể.Tìm nạp trước chứng chỉ SSL .NET
Tôi đang tìm cách tìm nạp trước chứng chỉ SSL được cài đặt trên trang web bằng .NET hoặc WINAPI để tôi có thể xác thực ngày hết hạn của chứng chỉ được liên kết với một trang web cụ thể. Một trong những cách tôi có thể làm điều này là để lưu trữ các chứng chỉ khi chúng được xác nhận trong trình xử lý ServicePointManager.ServerCertificateValidationCallback và sau đó kết hợp chúng với các trang web đã được cấu hình, nhưng điều này có vẻ hơi bị hack một chút. Khác sẽ được cấu hình các ứng dụng với giấy chứng nhận cho trang web, nhưng tôi muốn tránh điều này nếu tôi có thể để giảm thiểu cấu hình.
Cách nào dễ nhất để tôi tải xuống chứng chỉ SSL được liên kết với trang web bằng .NET để tôi có thể kiểm tra thông tin chứng chỉ chứa để xác thực?
EDIT:
Để mở rộng trên câu trả lời dưới đây không cần phải tự tạo ra các ServicePoint trước khi tạo yêu cầu. Nó được tạo ra trên đối tượng yêu cầu như là một phần của việc thực hiện yêu cầu.
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;
}
}
câu hỏi tuyệt vời :) –