Подключение из HttpClient к API за Azure FrontDoor с помощью TLS 1.2

Передняя дверца Azure настроена с минимумом TLS 1.2. Серверная служба приложений Azure также настроена на использование минимальной версии TLS 1.2.

При запуске консольного приложения .Net Framework 4.7.1 со следующим кодом в Windows Server 2012 R2:

class Program
    {
        static async Task Main(string[] args)
        {
             ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
             var client = new HttpClient();

            try
            {

                var OK = await client.GetAsync("https://foo-appservice.azurewebsites.net/"); // App service.
                var NotOK = await client.GetAsync("https://foo.myfoo.io/"); // Front door.

            }
            catch (Exception e)
            {
               Console.WriteLine(e);
            }

            Console.ReadKey();
        }
    }

Я получаю следующее исключение при втором вызове.

An error occurred while sending the request.
The underlying connection was closed: An unexpected error occurred on a send.
Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.

Однако запуск этого с помощью curl с того же сервера работает:

curl https://foo.myfoo.io/ -i --tlsv1.2 --tls-max 1.2

Тот же код .net отлично работает с моего другого ноутбука с Windows 10.

В чем может быть причина сбоя вызова на коробке windows server?

Редактировать:

Я думаю, что это связано с пользовательскими доменами, поскольку выполнение простого GET для домена, назначенного входной дверью, работает.


person Jompa234    schedule 20.02.2020    source источник


Ответы (1)


Оказывается, «кто-то» отключил множество наборов шифров на Windows Server.

Я использовал wireshark для просмотра рукопожатия TLS и заметил, что наборы шифров, перечисленные в Client Hello, не соответствуют серверам.

Так что для тех, кто борется с ошибками TLS, может быть полезно взглянуть на рукопожатие TLS в Wireshark!

person Jompa234    schedule 26.03.2020