Tengo una aplicación ASP ejecutándose en IIS 7.5. Debido al EoL de Windows 7, tuve que actualizar a Windows 10 y a IIS 10. Todo parecía estar en su lugar, excepto que ahora el sitio ASP o cualquier otro sitio web funciona, excepto si se usa https. Hasta ahora Firefox me da PR_CONNECT_RESET_ERROR, Chrome devuelve un ERR_SSL_PROTOCOL_ERROR y Edge devuelve un Hmmm, no puedo acceder a esta página.
Algunas respuestas señalan el módulo ARR Rewrite, que desinstalé y, después de reiniciar, reinstalé la versión actualizada con los mismos resultados. Terminé desinstalándolo (ya no es necesario) y reiniciando. Reinstalo IIS eliminando las funciones de Windows reiniciando y reinstando IIS nuevamente y reiniciando. Elimino todos los certificados y creo uno autofirmado y el mismo problema. Finalmente, eliminé todos mis sitios web de ese servidor web y creé uno nuevo en el directorio predeterminado (wwwroot que contiene un archivo html y dos imágenes) que se muestra siempre que se utilice el protocolo http, pero no https (los mismos errores). Seguíesta guíapara IIS 7 pero sin amor. También revoco y vuelvo a otorgar permisos a las carpetas de IUSR después de las reinstalaciones. Finalmente, desactivé el filtrado SSL del antivirus, pero no hubo diferencia.
El certificado que se usó originalmente se realizó internamente usando openssl para generar un certificado raíz para toda la empresa, un certificado intermedio y el certificado de la máquina que funcionó bien hasta la actualización. Actualmente, como dije, incluso con el autofirmado no funciona utilizar ninguno de los navegadores utilizados para servir el contenido más simple. Se me acabaron las ideas sobre qué comprobar.
Este es el rastro que obtuve de IIS.
#Software: Microsoft Internet Information Services 10.0
#Version: 1.0
#Date: 2020-01-20 20:12:22
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2020-01-20 20:12:22 192.168.1.100 GET / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 - 200 0 0 2687
2020-01-20 20:12:22 192.168.1.100 GET /iisstart.png - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 http://devmachine.company.local/ 200 0 0 12
2020-01-20 20:12:22 192.168.1.100 GET /favicon.ico - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:73.0)+Gecko/20100101+Firefox/73.0 - 404 0 2 5
#Software: Microsoft Internet Information Services 10.0
#Version: 1.0
#Date: 2020-01-20 12:26:37
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-substatus sc-win32-status time-taken
2020-01-20 20:12:22 ::1 GET / - 443 - ::1 Microsoft+Windows+Network+Diagnostics - 200 0 0 996
2020-01-20 20:12:22 192.168.1.100 HEAD / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 - 200 0 0 19
2020-01-20 20:27:38 192.168.1.100 GET / - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 - 200 0 0 8
2020-01-20 20:27:38 192.168.1.100 GET /iisstart.png - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 http://devmachine.company.local/ 200 0 0 50
2020-01-20 20:27:38 192.168.1.100 GET /favicon.ico - 80 - 192.168.1.100 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/79.0.3945.130+Safari/537.36 http://devmachine.company.local/ 404 0 2 19
Como puede ver, solo funcionó http (cambié la hora en otro intento para ver si había un problema con el reloj, pero no fue así. Chrome se quejó con http, por lo que el reloj estaba bien) pero no hay rastro de https.
Respuesta1
Obtuve la respuesta yo solo. El problema fue que a lo largo de los años los cifrados cambiaron, pero solo para los servidores de Windows 2012 y 2016 hubo actualizaciones adecuadas, pero no para las versiones anteriores y Windows 10 ya tenía esas entradas y se actualizó en consecuencia. En consecuencia, hay algunas entradas de registro que no existen y que afectan la forma en que se trata SSL en IIS después de la actualización. Para probar si este es el caso, abra una nueva pestaña en Firefox y escriba about:config y busque security.tls.version.max, configúrelo en 3 y guarde. Si intentas ir al sitio web funciona o al menos muestra el aviso habitual de que el certificado no es correcto. Si es así, deshaga el cambio en Firefox y aplique la solución que se muestra.aquí; que de todos modos voy a describir en caso de que esas páginas sean olvidadas o eliminadas.
Todo el problema se soluciona actualizando el registro en las siguientes entradas que deben crearse o cambiarse dependiendo de si ya había realizado parte de los cambios para reforzar la seguridad en su servidor web anteriormente.
Actualizar WinHTTP
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\
DefaultSecureProtocols = (DWORD): 0xAA0
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp\
DefaultSecureProtocols = (DWORD): 0xAA0
Habilite TLS 1.2 si aún no lo ha hecho
[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
Si su aplicación es de 32 bits en un sistema operativo de 64 bits, modifíquela también
[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
Configure los protocolos SCHANNEL si aún no lo ha hecho para habilitar TLS 1.2
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault" = dword:00000000
"Enabled" = dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault" = dword:00000000
"Enabled" = dword:0xffffffff
Asegúrese de que TLS 1.1 sea el mismo que TLS 1.2 si desea admitirlo para aplicaciones/navegadores heredados. Es recomendable deshabilitar cifrados débiles como SSL y, si puede, TLS 1.0 (DisableByDefault = dword:00000001 Enabled=00000001 para cliente y servidor. Esas entradas se encuentran en TLS 1.0, que está en el mismo nivel de TLS 1.1 y TLS 1.2). y reinicie la computadora.
Si todo va bien tu aplicación volverá a funcionar o al menos aparecerá el mensaje habitual de riesgo de seguridad debido al certificado autofirmado. Espero que esto funcione para usted y vote si le ayuda a resolver el problema y gracias de antemano.
Nota: Puede configurar/borrar los valores de regedit adecuados utilizando los scripts que se proporcionan aquí:https://www.hass.de/content/setup-microsoft-windows-or-iis-ssl-perfect-forward-secrecy-and-tls-12
Respuesta2
Sentí la necesidad de publicar después de mucho buscar sobre este artículo. Es esencialmente perfecto.
Tuve algunos problemas, así que sugerencias.
- use el script en la parte inferior de la sugerencia del sitio de MS. Debe ejecutarse como administrador.
- Si el script no funciona, elimine las claves que creó y luego intente ejecutar el script nuevamente.
Finalmente, si usted ha causado el problema al actualizar a Server 2019 y su servidor IIS se está conectando a un servidor SQL 2012, asegúrese de que esté parcheado en SP4. :)