Redirección automática de HTTP a HTTPS desde IIS 7 usando URL Rewrite 2.0

Luego de instalar un certificado de seguridad SSL en mi servidor VPS windows, me quedó un problema, se podía invocar al dominio desde HTTP y HTTPS. La idea es que solo se pueda entrar a través de HTTPS. Aquí la solución que apliqué entrando a través del Escritorio Remoto, la fuente original está en este link:

Automatically Redirect HTTP requests to HTTPS on IIS 7 using URL Rewrite 2.0

Para aplicar esta solución debes tener instalado en tu IIS URL Rewrite 2.0

Por lo gral. los servidores ya lo traen instalado. En caso que no, puedes bajarlo desde aquí: http://www.jppinto.com/2010/02/url-rewrite-2-0-installation/

Estando en el panel de control de IIS 7
–  Selecciona el site que vas a configurar
– En el  “Features View” panel, doble clic en  URL Rewrite

 

Verás que no hay reglas configuradas para este sitio. Haz click en “Add Rules…” en el menú de la derecha.

Use “Blank rule” que está por defecto y presione  “OK”.

Ahora verás 4 cajas con su respectivo nombre. vamos a ver que configuración va dentro de cada una.

– Coloca el nombre “Redirect to HTTPS” en el campo nombre.
– Ahora configuramos los datos dentro de la caja “Match URL”, expandelo haciendo clic en la flechita hacia abajo.

Coloca la siguiente información:
Requested URL: Matches the Pattern
Using: Regular Expressions
Pattern: (.*)

Ahora la caja que se llama “Conditions”, Presionamos “Add…”

En la pantalla que se abre, luego de presionar “Add” hay que poner los siguientes datos:

Condition Input: {HTTPS}
Check if input string: Matches the Pattern
Pattern: ^OFF$

La pantalla debe verse algo así:

La siguiente caja “Server Variables” no necesita cambios, así que pasamos a la siguiente caja.
La siguiente caja se llama “Action” y hay que poner lo siguiente:

Action Type: Redirect
Redirect URLhttps://{HTTP_HOST}/{R:1}
Redirect Type: See Other (303)

Presionamos el botón “Apply” que esta a la derecha

Listo, queda configurada la redirección.

Si revisamos el archivo web.config vamos a ver que se introdujo el siguiente código:

Ese código se puede poner directamente en el web.config.

<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions><add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *