Redirigir HTTP a HTTPS en IIS

Publicado el 09 diciembre 2022 por Daniel Rodríguez @analyticslane

Cuando tenemos una web publicada con Internet Information Services (IIS) en un dominio para el que se dispone de un certificado válido, una buena práctica es redirigir las conexiones que se realizan mediante HTTP a HTTPS. Así, en el caso de que un usuario solicite la página no segura (HTTP) este será redirigido automáticamente a la versión segura (HTTPS). Consiguiendo, de una forma transparente para el usuario, que la navegación sea más segura. Evitando el mensaje que muestran los navegadores indicando que la web a la que se accede no es segura. Veamos cómo hacer que el tráfico HTTP a HTTPS en IIS

Hoy en día ya no hay excusa para no tener un certificado para nuestro dominio. Gracias a Let's Encrypt es posible obtenerlos de forma gratuita. En el tutorial "Creación de un certificado Let's Encrypt en Windows" se explica cómo obtener uno en Windows. Certificado que también se explica como renovar automáticamente.

Requisitos previos

Además de un equipo Windows con IIS instalado y funcionando es necesario instalar el componente URL Rewrite para realizar las redirecciones. Un componente que ya hemos usado para publicar aplicaciones Node en ISS. La instalación del componente es sencilla, solamente hay que ir a la página de descarga, descargar el instalador y seguir los pasos que se muestran en pantalla.

Pasos para la redirección del tráfico HTTP a HTTPS en IIS

Los pasos para crear una redirección automática del tráfico HTTP a HTTPS en IIS son los siguientes:

  1. Acceder al Administrador de Internet Information Services (IIS) y seleccionar el sitio web sobre el que se desea crear la regla.
  2. Abrir el componente Reescritura de dirección URL.
    Pulsar sobre la Agregar reglas....
    Seleccionar la opción Regla en blanco y pulsa sobre aceptar
  1. Agregar un nombre a la regla.
  2. En la sección Coincidir dirección URL seleccionar la opción Coincide con el patrón en el desplegable Dirección URL solicitada.
  3. Posteriormente, en el desplegable Usando seleccionar la opción Expresiones regulares.
  4. Escribir en el campo Patrón: la cadena (. *).
    Tras esto, en la sección Condiciones seleccionar la opción Coincide con todas en el desplegable Agrupación lógica y pulsar sobre el botón Agregar....
    En la ventana que aparecerá escribir {HTTPS} en el campo Entrada de condición, seleccionar Coincide con el patrón en el desplegable Comprobar si la cadena de entrada y en el campo Patrón escribir ^OFF$.
  1. A continuación, en la sección Acción seleccionar en el desplegable Tipo de Acción la opción redirigir.
  2. Escribir en el campo Redirigir dirección URL la cadena https://{HTTP_HOST}/{R:1}.
  3. Tras lo cual se debe seleccionar en el desplegable Tipo de redirección la opción Permanente (301).

Una vez terminados los pasos anteriores, tendremos la regla en nuestro servidor y cada vez que un usuario escriba http://midominio será redirigido automáticamente a https://midominio.

Conclusiones

En esta entrada se han visto los pasos para crear una regla con la que se puede redirigir el tráfico HTTP a HTTPS en IIS de forma automática. Haciendo de esta forma que la navegación en nuestros servidores sea más segura.

Imagen de Hands off my tags! Michael Gaida en Pixabay