WebService, использующий TLS1.1, TLS1.2 не может подключиться к серверу разработки, работает в локальной разработке - PullRequest
0 голосов
/ 06 марта 2020

У меня есть. NET Вызов WebService, который настроен на использование TLS1.1 или выше. Это работает в моей локальной разработке, но когда я перехожу на наш сервер разработки, я получаю следующую ошибку:

Не удалось выполнить запрос для данных xxx - - Запрос был прерван: Не удалось создать SSL / TLS безопасный канал.

В коде у меня есть настройки tls:

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls13 | SecurityProtocolType.Ssl3;

Я проверил на сервере, что параметры реестра правильны для включения TLS1.1, 1.2, et c ... путем проверки: * HKEYLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols [TLS 1.1, TLS 1.2] * У меня есть DisabledByDefault = 0 и Enabled = 1 для обоих Ключи «Клиент» и «Сервер» в этих местоположениях

В системных журналах windows имеется ошибка Schannel: EventID 36887: С удаленной конечной точки получено фатальное предупреждение. Протоколом фатального оповещения, определенным протоколом TLS, является 40.

Я не уверен, куда отсюда go. Я чувствую, что это, вероятно, простая настройка или настройка реестра, но я потерян.

заранее спасибо за помощь

1 Ответ

0 голосов
/ 07 марта 2020

Если я вас правильно понял, у вас есть код, который работает на одном сервере, а не на другом. В этом случае кажется, что, по крайней мере, вы правильно настроили. Net Framework, но, как говорится в одном из комментариев, вам следует проверить, поддерживает ли ваша ОС его TLS 1.1 (возможно, стоит проверить, что вы работаете на том же самом. net рамочная версия, а также).

Я вижу, что вы используете Win Server 2012, и кажется, что он там не включен по умолчанию. Вот цитата из MS docs здесь :

Более ранние версии Windows, такие как Windows 7 или Windows Server 2012, не включают TLS 1.1 или TLS 1.2 по умолчанию для безопасной связи с использованием WinHTTP. Для этих более ранних версий Windows установите обновление 3140245, чтобы включить приведенное ниже значение реестра, для которого можно добавить TLS 1.1 и TLS 1.2 в список безопасных протоколов по умолчанию для WinHTTP.

Попробуйте проверить документация и проверка TLS 1.1. в ОС включен.

PS Если сервер, к которому вы пытаетесь подключиться, поддерживает TLS 1.2, я бы вообще не стал использовать TLS 1.1, а просто заставил бы всех использовать TLS 1.2.

...