Только на Azure: не удалось создать безопасный канал SSL / TLS

Я запускаю приложение в приложении Azure Standard: 1 Небольшой план. Framework 4.6.1

Это приложение вызывает API-интерфейс, защищенный SSL. SSL публикуется ЦС сервера StartCom Class 1 DV, мой локальный браузер сообщает мне, что сертификат действителен.

Если я запускаю приложение на моей локальной машине, все работает. Однако при развертывании в Azure происходит сбой с следующей ошибкой:

System.Net.Http.HttpRequestException: при отправке запроса произошла ошибка. ---> System.Net.WebException: запрос был прерван: не удалось создать безопасный канал SSL / TLS.

в System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult)

в System.Net.Http.HttpClientHandler.GetResponseCallback (IAsyncResult ar)

--- Конец внутренней трассировки стека исключений ---

в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача)

в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача)

Код:

public async Task<List<QutationOverview>> GetAll(string url, DateTime lastActionDate)
    {
        var result = string.Empty;

        try
        {


            var userName = await _settingManager.GetSettingValueAsync("API.UserName");
            var password = await _settingManager.GetSettingValueAsync("API.Password");


            ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls |
                                                   SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;


            ServicePointManager
                .ServerCertificateValidationCallback +=
                (sender, cert, chain, sslPolicyErrors) => true;


            //Add date filter
            //Always request qutations where the last action took place >= Yesterday
            var requestUrl =
                $"GetALL/?last_action_date={lastActionDate.AddDays(-1).ToString("yyyy-MM-dd")}&format=json";


            var baseAddress = new Uri(url);
            var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{userName}:{password}"));

            Logger.InfoFormat("GetAllQuotationsAsync for url {0}{1}", url, requestUrl);

            using (var httpClient = new HttpClient {BaseAddress = baseAddress})
            {
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);
                using (var response = await httpClient.GetAsync(requestUrl))
                {
                    result = await response.Content.ReadAsStringAsync();
                    Logger.Info(result);
                }
            }
        }

        catch (Exception ex)
        {
            Logger.ErrorFormat("GetAllQuotationsAsync {0}: {1}", url, ex);
        }
        var data = JsonConvert.DeserializeObject<List<QutationOverview>>(result);

        return data;
    }

Как видите, я пропустил проверку сертификата и добавил протоколы безопасности.

Тем не менее, запрос по-прежнему не удается.

Вот капитулированный ответhttp://textuploader.com/5ers0

У вас есть идеи, как заставить это работать на Azure?

Ответы на вопрос(2)

Ваш ответ на вопрос