Cuando necesitamos que todas las peticiones HTTP de un dominio concreto de nuestro servidor IIS sean redirigidas a un socket seguro (HTTPS) tendremos que reescribir la URL para convertirla en HTTPS.
Nota: En esta caso la opción de redirigir no nos valdría ya que produciríamos un bucle infinito al servidor estar constantemente redirigiendo a la url HTTPS.
Instalación extensión URL Rewrite
En primer lugar, y sino lo tenéis ya, tendremos que instalar la extensión URL Rewrite en nuestro servidor IIS.
Podremos realizar la instalación, de forma fácil, dirigiéndonos a la siguiente url oficial de Microsoft.
Una vez realizada la instalación en nuestro IIS nos deberá aparecer el siguiente icono.
Nota: Sino apareciera el icono después de instalarlo deberás cerrar y abrir nuevamente IIS.
Configuración regla reescritura de dirección URL mediante GUI
Nos dirigiremos a la nueva opción Reescritura de dirección URL que podremos encontrar en nuestro sitio (virtual host).
En el panel de acciones pulsamos sobre Agregar reglas y en la pantalla que se nos abrirá pulsaremos sobre Regla en blanco.
Rellenamos la siguiente información:
- Nombre: Nombre de la regla.
- Coincidir dirección URL:
- Dirección URL solicitada: Coincide con el patrón.
- Usando: Expresiones regulares.
- Patrón: (.*)
- Omitir mayúsculas y minúsculas: Marcado.
- Condiciones:
- Agrupación lógica: Coincide con todas.
- Agregar la condición:
- Entrada de condición: {HTTPS}
- Comprobar si la cadena de entrada: Coincide con el patrón.
- Patrón: ^OFF$
- Acción:
- Tipo de acción: Redirigir.
- Redirigir acción URL: https://sustituir_por_nuestra_dirección_url/{R:1}
- Anexar cadena de consulta: Marcado.
- Tipo de redirección: Ver otro (303).
Por último salvamos nuestra regla y ya tendremos aplicada la redirección.
Configuración regla reescritura de dirección URL mediante web.config
Si en vez de hacerlo mediante el GUI de IIS queremos hacerlo añadiendo el código directamente el web.config de nuestro sitio web simplemente tendremos que editarlo y añadir el bloque <rewrite> tal y como indico a continuación:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="To HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://sustituir_por_direccion_url/{R:1}" redirectType="SeeOther" /> </rule> </rules> </rewrite> </system.webServer>
Espero os haya sido de utilidad.
Entradas relacionadas
- Configurar FTP para admitir conexiones FTP en modo pasivo
- Como utilizar NET Framework 1.1 en un IIS 10 sobre Windows Server 2019
- Let´s Encrypt para IIS
- IIS: Modificar Nombre Host en Webs HTTPS
Me dedico a la Administración de Sistemas y he creado este blog para compartir mis conocimientos con toda la comunidad y así aportar mi granito de arena y ayudar a todo el que lo necesite.