Ошибка политики SSL при использовании HttpClient (. NET) - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь использовать REST API на локальном веб-сервере с самозаверяющим сертификатом. Во время выполнения приложение выдает ошибку

AuthenticationException: удаленный сертификат недействителен в соответствии с процедурой проверки.

Я попытался исправить это в ответе: { ссылка } однако ошибка остается. Код ниже:

static void Main(string[] args)
    {
        HttpClient httpClient = new HttpClient();
        httpClient.DefaultRequestHeaders.Clear();

        ServicePointManager.ServerCertificateValidationCallback = delegate (
            object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
        {
            return true;
        };
        var loginPage = httpClient.GetAsync("https://<local IP address>/loginpage.html").GetAwaiter().GetResult();

        //do stuff with response...
    }

Есть какие-нибудь идеи о том, что я могу сделать, чтобы эффективно игнорировать ошибки политики SSL?

1 Ответ

1 голос
/ 24 апреля 2020

Разобрался. Оказывается, класс HttpClient не использует метод ServicePointManager.ServerCertificateValidationCallback. Решение было следующим:

static void Main(string[] args)
    {
        HttpClientHandler httpClientHandler = new HttpClientHandler();
        httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; };

        HttpClient httpClient = new HttpClient(httpClientHandler);
        httpClient.DefaultRequestHeaders.Clear();

        var loginPage = httpClient.GetAsync("https://<local IP address>/loginpage.html").GetAwaiter().GetResult();
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...