Проблема с Windows Server 2012 R2 TLS 1.2

Проблема с Windows Server 2012 R2 TLS 1.2

У меня возникли проблемы с TLS 1.2 на моем Windows Server 2012 R2 (веб-сервер приложений, IIS), из-за которых я не могу получить доступhttps://api.nuget.org/v3/index.jsonчерез Internet Explorer даже после того, как я вижу, что TLS 1.2 включен.

У меня есть другой сервер с той же ОС и теми же обновлениями ОС (но без IIS), и у этого сервера нет проблем с доступом к API или любой другой конечной точке с TLS 1.2)

На проблемном сервере я попробовал следующее:

  1. Использовал IISCrypto, чтобы включить все -> Перезапустить -> НЕУДАЧНО
  2. Измените параметры реестра вручную, следуя документации Microsoft -https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2- НЕУСПЕШНЫЙ
  3. Использовал следующий скрипт для полного сброса и повторного включения только TLS 1.2 - https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12- НЕУСПЕШНЫЙ

На данный момент я потратил почти 3 дня на устранение неполадок и выяснение, в чем проблема между этими двумя серверами, почему один сервер Windows работает, а другой нет.

Любые советы, шаги по устранению неполадок или инструменты будут приветствоваться!

Скриншоты введите описание изображения здесь

  • через NuGet CLR
  • на проблемном сервере введите описание изображения здесь
  • На сервере, который работает введите описание изображения здесь

решение1

Итак, после нескольких часов устранения неполадок мне наконец удалось решить проблему и сделать API доступным с нашего сервера по протоколу TLS 1.2.

У нас на сервере есть .net framework, у которого возникли проблемы с доступом к API. Microsoft рекомендует установить следующий реестр для принудительного использования SystemDefaultTlsVersions

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

решение2

Моя репутация крайне низкая, поэтому мне придется написать ответ.

Сообщение браузера может вводить в заблуждение

Вам следует проверить, разрешает ли DNS ту же цель и обнаруживает ли клиент какой-либо прокси-сервер.

Это может быть проверка пакетов брандмауэром, возможно, с помощью прозрачного прокси-сервера.

Проверьте, какой ответ вы получаете с помощью s_client в openssl: https://stackoverflow.com/questions/7885785/using-openssl-to-get-the-certificate-from-a-server

Используйте DeveloperTools в браузере, чтобы просмотреть раздел «Сеть» и увидеть, куда был отправлен ваш запрос (возможно, через прокси-сервер) и какой ответ вы получили.

Отключите некоторые проверки SSL/TLS в Powershell: https://stackoverflow.com/questions/34331206/ignore-ssl-warning-with-powershell-downloadstring

Проверьте, что у обоих одинаковая конфигурация сети относительно IPv6. Возможно, один из них подключается к другому серверу из-за этого.

EDIT: по крайней мере, сделайте проверку openssl, чтобы убедиться, что вы можете получить правильный сертификат. Отключите проверку SSL/TLS для Powershell, и тестирование поможет убедиться в проблеме.

Связанный контент