Подтвердить что ты не робот

WCF Client в .NET 4.51: Как включить TLS 1.2 при использовании WebRequest?

Наш .net WCF-клиент, вызов WebRequest, скомпилированный в Windows EXE, работающий на Win2012-R2, отказывается подключаться к веб-серверу, на котором работает ТОЛЬКО TLS 1.2

Мы знаем, что Win2012 и .NET 4.5x поддерживают TLS 1.2

У нас нет проблем, когда сервер обрабатывает TLS 1.0 и выше. Проблема возникает только при подключении к серверу DISABLED TLS 1.0, 1.1 и SSL2 и SSL3. Сервер ТОЛЬКО обрабатывает TLS 1.2. Chrome и firefox (на Win 7 и выше) прекрасно подключаются к серверу (никаких предупреждений или проблем с SSL не существует).

Сертификат сервера равен% 100.

Проблема в том, что WebRequest не может подключиться в этой ситуации.

Что нам нужно установить в коде, чтобы наше использование WebRequest соединилось с системами, которые могут запускать TLS 1.2, 1.1, 1.0 и/или SSL v3?

4b9b3361

Ответ 1

Пока нелегко понять, требуемое свойство:

System.Net.ServicePointManager.SecurityProtocol

Это можно использовать для отключения и включения уровней TLS в среде WCF.

Кроме того, вы можете видеть, что WCF в настоящее время настроен на использование:

Console.WriteLine(System.Net.ServicePointManager.SecurityProtocol.ToString());

Благодаря: Как отключить отключение SSL и использовать только TLS для исходящих подключений в .NET? (Смягчение пуделя)

Ответ 2

Вы должны работать с версией .NET 4.5 или выше и добавить эту строку в свой код:

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;