HttpClient Не удалось создать безопасный канал SSL / TLS - PullRequest
0 голосов
/ 02 мая 2019

Привет, когда я делаю запрос get к нашему API, я получаю сообщение об ошибке «Запрос был прерван: не удалось создать безопасный канал SSL / TLS».

Я попытался добавить ServicePointManager.SecurityProtocol =SecurityProtocolType.Tls12 в мой код, так как это был самый популярный ответ о том, как решить проблему.Он работал на моем локальном хосте, но не на нашем сервере.

Я проверил на нашем сервере, используя IISCrypto, чтобы убедиться, что TLS 1.2 включен на нашем сервере.В Windows на веб-сервере также включен «режим сильной криптографии».

        string baseURI = "";
        string token = "";
        ServicePointManager.Expect100Continue = true;
        ServicePointManager.DefaultConnectionLimit = 9999;
        ServicePointManager.ServerCertificateValidationCallback = Validate;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
        HttpClient newClient = new HttpClient();
        var authValue = new AuthenticationHeaderValue("Bearer", token);          
        newClient.DefaultRequestHeaders.Authorization = authValue;

        try
        {
            using (HttpResponseMessage post = await newClient.GetAsync(String.Format("{0}{1}", baseURI, absoluteURI)).ConfigureAwait(false))
            {
                try
                {
                    post.EnsureSuccessStatusCode();
                    var read = await post.Content.ReadAsStringAsync().ConfigureAwait(false);
                    apiPost = post;
                    apiResponse = read.ToString();
                    successful = true;
                }
                catch (HttpRequestException hex)
                {
                    apiResponse = post.StatusCode.ToString();
                    successful = false;
                    Email.ErrorEmail("-1", "-1", "Mattermost API Error", hex, apiResponse);
                }
            }
        }
        catch (Exception ex)
        {
            Email.ErrorEmail("-1", "-1", "Mattermost API Error", ex, apiResponse);
        }            
    }

    public static bool Validate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
        if (sslPolicyErrors != SslPolicyErrors.None)
        {
            return false;
        }
        return true;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...