Somente no azure: não foi possível criar o canal seguro SSL / TLS

Eu executo um aplicativo no aplicativo do Azure Padrão: 1 Plano pequeno. O framework é 4.6.1

Este aplicativo está chamando uma API protegida por SSL. O SSL é publicado pela CA do servidor DV da StartCom Classe 1, meu navegador local informa que o certificado é válido.

Se eu executar o aplicativo na minha máquina local, tudo funcionará. No entanto, quando implantado para o Azure, ele falha com o seguinte erro:

System.Net.Http.HttpRequestException: ocorreu um erro ao enviar a solicitação. ---> System.Net.WebException: a solicitação foi interrompida: não foi possível criar o canal seguro SSL / TLS.

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

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

--- Fim do rastreamento da pilha de exceção interna ---

em System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tarefa Task)

em System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tarefa Task)

O código:

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;
    }

Como você pode ver, pulo a validação do certificado e adicionei os protocolos de segurança.

No entanto, a solicitação ainda está falhando.

Aqui está a resposta encobertahttp://textuploader.com/5ers0

Você tem alguma idéia de como fazer com que este funcione no Azure?

questionAnswers(2)

yourAnswerToTheQuestion