저는 웹 사이트의 상태를 모니터링 할 수있는 유틸리티를 작성하고 있습니다. 이것은 웹 응용 프로그램에 대해 실행할 수있는 일련의 유효성 검사 작업으로 구성됩니다. 테스트 중 하나는 특정 SSL 인증서의 만료를 예상하는 것입니다.SSL 인증서 미리 가져 오기 .NET
.NET 또는 WINAPI를 사용하여 웹 사이트에 설치된 SSL 인증서를 미리 가져 와서 특정 웹 사이트와 연결된 인증서의 유효 기간을 확인할 수있는 방법을 찾고 있습니다.
내가 할 수있는 한 가지 방법은 ServicePointManager.ServerCertificateValidationCallback 처리기에서 유효성을 검사하고 구성된 웹 사이트와 일치시킬 때 인증서를 캐싱하는 것입니다. 그러나 이것은 약간 hackish 한 것 같습니다. 또 다른 웹 사이트에 대한 인증서로 응용 프로그램을 구성하는 것입니다,하지만 오히려 내가 구성을 최소화하기 위해 할 수 있다면 이것을 피할 것입니다.
.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;
}
}
awesome question :) –