Problema con Windows Server 2012 R2 TLS 1.2

Problema con Windows Server 2012 R2 TLS 1.2

Tengo problemas con TLS 1.2 en mi Windows Server 2012 R2 (servidor web de aplicaciones, IIS), al que no puedo accederhttps://api.nuget.org/v3/index.jsona través de Internet Explorer incluso después de ver que se ha habilitado TLS 1.2.

Tengo otro servidor con el mismo sistema operativo y las mismas actualizaciones del sistema operativo (pero sin IIS) y este servidor no tiene problemas para acceder a la API o cualquier otro punto final con TLS 1.2)

En el servidor problemático, intenté lo siguiente:

  1. Usé IISCrypto para habilitar todo -> Reiniciar -> FALLÓ
  2. Cambie manualmente la configuración del Registro siguiendo la documentación de Microsoft -https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2- FALLIDO
  3. Usé el siguiente script para restablecer completamente y volver a habilitar solo TLS 1.2: https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12- FALLIDO

En este momento, he pasado más de 3 días tratando de solucionar problemas y ver cuál es el problema entre estos dos servidores, por qué un servidor de Windows funciona y otro no.

¡Cualquier consejo, paso de solución de problemas o herramienta será bienvenido!

Capturas de pantalla ingrese la descripción de la imagen aquí

  • a través de Nuget CLR
  • en el servidor problemático ingrese la descripción de la imagen aquí
  • En el servidor que funciona. ingrese la descripción de la imagen aquí

Respuesta1

Entonces, después de horas de resolución de problemas, finalmente pude resolver el problema y obtener acceso a la API desde nuestro servidor a través de TLS 1.2.

Tenemos .net framework en nuestro servidor que estaba teniendo problemas para acceder a la API. Microsoft recomienda configurar el siguiente registro para forzar 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

Respuesta2

Mi reputación es muy baja, así que tengo que escribir una respuesta.

El mensaje de los navegadores puede ser engañoso.

Debes validar si el DNS resuelve el mismo objetivo y si el cliente detecta algún tipo de proxy.

Puede ser una inspección de paquetes mediante un firewall, tal vez con un proxy transparente.

Valida qué respuesta obtienes con s_client en openssl: https://stackoverflow.com/questions/7885785/using-openssl-to-get-the-certificate-from-a-server

Utilice DeveloperTools en el navegador para echar un vistazo a "Red" y ver dónde se envió su solicitud (tal vez a través de proxy) y qué respuesta obtuvo.

Deshabilite algunas comprobaciones SSL/TLS en Powershell: https://stackoverflow.com/questions/34331206/ignore-ssl-warning-with-powershell-downloadstring

Valide que ambos tengan la misma configuración de red con respecto a IPv6. Quizás uno de ellos se conecte a otro servidor por eso.

EDITAR: al menos haga la verificación de openssl para asegurarse de que puede obtener el certificado correcto. Deshabilite SSL/TLS Check para Powershell y las pruebas ayudarían a estar seguro del problema.

información relacionada