Как получить SSL-сертификат сервера, на котором запущена веб-служба, из клиентского приложения? - С# .NET

У меня есть клиентская программа, написанная на .NET 2.0, которая подключается к веб-службе. Я использовал Visual Studio для создания класса, производного от SoapHttpClientProtocol, каждый метод был создан просто отлично, все работает.

Но - веб-сервис работает только через HTTPS, поэтому мне просто было интересно, как я могу получить экземпляр X509Certificate сертификата сервера.

Я знаю, что Framework выполняет проверку сертификата сервера прозрачно, поэтому мне не нужно заботиться о проверке сертификата в моем коде, но что, если мне нужно прочитать серийный номер сертификата?

Базовый класс SoapHttpClientProtocol, по-видимому, имеет только члены/методы для клиентских сертификатов.

Спасибо за помощь


person Community    schedule 05.09.2009    source источник


Ответы (1)


Вы подключаетесь к ServicePointManager.ServerCertificateValidationCallback. Ваш обратный вызов будет вызван с сервером X509Certificate, и вы можете проверить на нем все, что захотите, например Issuer и SerialNumber.

person Remus Rusanu    schedule 05.09.2009