Подтвердить что ты не робот

Получить сертификат ssl в .net

Я ищу, чтобы получить данные от любого сертификата SSL домена. Например, я хочу указать любой адрес веб-сайта, например. "/qaru.site/...", и мой код сначала проверяет наличие сертификата SSL. Если это произойдет, я хочу, чтобы он вынул дату истечения срока действия сертификата. [Я читаю Domainnames из DB] Пример: http://www.digicert.com/help/

Мне нужно создать веб-сервис, чтобы проверить дату истечения срока действия. как я могу это реализовать? - Я просмотрел множество различных вещей, таких как RequestCertificateValidationCallback и ClientCertificates и т.д.

Я мог бы быть совершенно прав (поэтому мне нужна помощь), но я бы создал HTTPWebRequest, а затем каким-то образом запросил сертификат клиента и конкретные элементы таким образом?

Я попробовал предоставленный пример @SSL-сертификат pre-fetch.NET, но я получаю ошибку 403.

Любая помощь будет высоко оценена - Спасибо.

4b9b3361

Ответ 1

    using System.Security;
    using System.Security.Cryptography;
    using System.Security.Cryptography.X509Certificates;

    //Do webrequest to get info on secure site
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://mail.google.com");
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    response.Close();

    //retrieve the ssl cert and assign it to an X509Certificate object
    X509Certificate cert = request.ServicePoint.Certificate;

    //convert the X509Certificate to an X509Certificate2 object by passing it into the constructor
    X509Certificate2 cert2 = new X509Certificate2(cert);

    string cn = cert2.GetIssuerName();
    string cedate = cert2.GetExpirationDateString();
    string cpub = cert2.GetPublicKeyString();

    //display the cert dialog box
    X509Certificate2UI.DisplayCertificate(cert2);

чтобы выполнить это, вам нужно добавить system.security в ссылку.

Ответ 2

Следует отметить, что вам может потребоваться установить request.AllowAutoRedirect = False. В противном случае, если сервер перенаправляет HTTPS на HTTP, вы не сможете получить сертификат из объекта HttpWebRequest.