Tras instalar un certificado SSL en tu sitio web IIS, es bastante común querer que todos tus visitantes accedan a la versión segura HTTPS sin tener que hacer nada.¿Configurar una regla de redirección? Sí, es una buena idea. Pero créeme, no siempre es sencillo, sobre todo si IIS da problemas con errores como 403.4 Prohibido o si la redirección simplemente no funciona. El problema es que a veces IIS entra en conflicto con la configuración de SSL o se olvida ajustar el archivo web.config correctamente. Así que aquí tienes un resumen que, con suerte, te ahorrará algunos dolores de cabeza.
Cómo hacer que IIS redirija todas las solicitudes HTTP a HTTPS
Método 1: Configurar una regla de redireccionamiento mediante el Administrador de reescritura de URL
Este es el método más común y, si se hace correctamente, funciona bastante bien. Por qué es útil: intercepta todas las solicitudes que llegan al puerto 80 (HTTP) y las redirige al puerto 443 (HTTPS).Se aplica principalmente si los visitantes escriben tu dominio sin especificar «https://».¿El resultado esperado? Todos acceden automáticamente a la versión segura. Pero cuidado: si tu sitio requiere SSL en la configuración, IIS podría bloquear la redirección.
Primero, asegúrate de haber instalado el Módulo de Reescritura de URL 2.1 para IIS, ya que es el que gestiona estas reglas. Puedes descargarlo desde aquí. A veces, la instalación parece una lucha con Windows (porque, claro, tiene que complicar las cosas), pero una vez instalado, ¡voilá!, podrás escribir reglas personalizadas.
Configure su sitio web para HTTPS y configure la redirección
- Abra el Administrador de Servicios de Información de Internet (IIS). Puede hacerlo ejecutando inetmgr.
- Haga clic en su sitio web en la sección Sitios.
- Vaya a la pestaña Configuración de SSL de su sitio. Asegúrese de que la opción «Requerir SSL» no esté marcada. Si lo está, la redirección entrará en conflicto y puede generar errores como «403.4 Prohibido».Quiere que se aplique SSL, pero no en este momento, o se verá envuelto en un problema.
- Vaya a la sección «Reescritura de URL». Si no la ve, asegúrese de que el módulo esté instalado correctamente.
Crear una nueva regla de redirección
- Haga clic en Agregar reglas y luego seleccione Regla en blanco.
- Ponle un nombre como “Redirigir a HTTPS”.
<rule name="Redirect_HTTP_to_HTTPS" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="OFF" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent (301)" /> </rule>
En la configuración de la regla: – Para URL solicitada, elija Matches the Pattern.- Para Usar, seleccione Wildcards.- Patrón:*
En la sección Condiciones :
- Establecer la entrada de condición como
{HTTPS}. - Compruebe si la cadena de entrada coincide con el patrón.
- Patrón:
OFF— es decir, cuando HTTPS no está activo. - Ignorar mayúsculas y minúsculas:
enabled.
A continuación, en la sección Acción, especifique:
- Tipo de acción:
Redirect - URL de redireccionamiento:
https://{HTTP_HOST}{REQUEST_URI} - Tipo de redirección:
Permanent (301)
Después de guardar esta regla, ejecútela iisresetdesde el símbolo del sistema (con permisos de administrador).Esto borrará la caché y aplicará los cambios. Luego, pruebe visitando su sitio web sin https y compruebe si se redirige a HTTPS.
Nota rápida: asegúrate de que tu archivo web.config no tenga reglas conflictivas. A veces, la edición directa es más rápida y predecible. Aquí tienes un fragmento que puedes copiar y pegar en tu archivo web.config :
<configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect_HTTP_to_HTTPS" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="OFF" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Y sí, este tipo de configuración debería funcionar en Windows Server 2022, 2019, 2016 y Windows 10/11 con IIS. No hay garantías para todos los casos extremos, pero suele ser bastante infalible en la mayoría de los entornos.
A veces, no entiendo por qué todo se complica: IIS puede ser muy exigente y la configuración de SSL puede entrar en conflicto. Pero este enfoque es bastante robusto y, en una configuración, ha funcionado a la perfección. En otra…no tanto, así que ten cuidado con las reglas o la configuración de cumplimiento de SSL que puedan entrar en conflicto.¡Madre mía, IIS!
Resumen
- Instalar el módulo de reescritura de URL
- Deshabilite o ajuste la configuración SSL si es necesario
- Crear una regla de redirección en IIS o web.config
- Ejecutar
iisresety probar
Resumen
Según mi experiencia, configurar la redirección en IIS es más fiable que manipular scripts de autoconf o intentar hacerlo con herramientas de terceros. Solo hay que configurar las reglas correctamente y asegurarse de que las configuraciones de SSL no entren en conflicto. Ojalá esto ayude y tus visitantes se mantengan seguros sin tener que lidiar constantemente con las URL.