13:09 0 0
Compartir SSL en una misma ip con IIS

Compartir SSL en una misma ip con IIS

  Sergi |  mayo 132019

Como me gusta compartir mis experiencias y mis perdidas de tiempo con mis amigos de la comunidad. En esta ocasión, la verdad, no me ha costado tanto encontrar la solución, pero como suele pasar, muchas más veces de las deseadas, no siempre la información que encuentras en internet está completamente bien explicada y si no es porque uno se busca la vida un poco, además de leer muchas páginas y documentación, muchas veces pierdes mucho más tiempo del que esperas. Pero como ya he dicho en esta ocasión solo me costó dos horas, y fue un poco gracias a que se me iluminó el bombillo además de la documentación que os comparto.

Compartir IP en IIS

Es bien conocido, que en un solo servidor se pueden gestionar varias páginas web. El servidor de IIS es capaz de identificar el nombre del dominio que se le está pidiendo y servir la página web correspondiente. Cada web es una carpeta en nuestro PC o disco duro compartido, o incluso podemos configurar varias páginas web dentro de la misma carpeta compartiendo código, y por supuesto, mostrando el mismo contenido, salvo que en el códico de la web también estemos controlando por que dominio hemos entrado y mostrar el contenido correspondiente.

Esto se nos complica un poco cuando necesitamos que la página se utilice medante un protocolo seguro, o SSL. Cuando a IIS le configuramos una web con SSL debemos de indicarle que tarjeta de red o IP va a utilizar dicha web, además del puerto, que normalmente será el 443. El problema se nos plantea cuando necesimos compartir la misma IP pública con diferentes cominios SSL.

Más facil de lo que parece

Tras consultar mucha información encontré varias formas de hacerlo, pero la que me ha parecido más fácil es la que os presento en este blog. La solución está en utilizar la capacidad SNI de IIS (desde la versión 8 o superior). La pega es que no todos los exploradores son compatibles, pero desde el año 2006 todos los principales exploradores son compatibles con esta funcionalidad, solo Internet Explorer 6 o anterior no lo son.

Configurar el SNI

Para configurar este sistema, abriremos la consola de IIS y seleccionaremos el dominio que queremos configurar como SSL. En las acciones seleccionamos Bindings... Luego en la ventana que se nos abre pulsamos en el botón de Agregar. En la ventana que se nos abre seleccionamos el tipo de SSL, seleccionamos la IP (si es necesario) y el puerto a utilizar. En el cuadre de texto de Nombre indicamos el nombre del dominio a utilizar. Y aqui viene lo interesante, marcamos la casilla de verificación Require Server Name Indication, o su traducción en el idioma que tengas instalado tu IIS, lo siento yo lo uso en inglés. Pero aqui os dejo la captura de pantalla, ya sabes que todo esta en el mismo lugar sea el idioma que sea.


Add Site Binding


Bueno sobra decir que, evidentemente, debereis de seleccionar el certificado SSL para dicho dominio. Recordar que un certificado SSL tiene que coincidir exactamente con el nombre del dominio que estamos configurando. Si no mostrará un error al entrar en la página de certificado no válido.

Esto lo repetiremos con cada una de las páginas que queremos configurar con la misma ip. Sobra decir que si son IPs diferentes, no necesitas configurar esto.

Pero la cuestión no termina aqui.

Ahora viene lo importante, que es lo que está algo mal explicado en toda la documentación que yo conseguí encontrar y que aqui os soluciono. Resulta que para que esto funcione 100% bien hay que configurar a mano y desde fuera de IIS un parámetro en cada web que quieras compartir la misma IP.

Busca el fichero de configuración de los sitios de IIS llamado applicationhost.config, lo  puedes encontrar en C:\Windows\System32\inetsrv\config (esto es lo que no dicen en la documentación). Dentro del fichero busca el registro de tu dominio y configura este parámetro sslFlags="1", o el número que corresponda, siemrpe consecutivos, aunque creo que si no lo son tambien funcionan, yo por ejemplo empecé en 0, 1 2...

< bindings >
< binding protocol="https" bindingInformation="*:443:SNI.IIS8.com" sslFlags="1" />
< /bindings >

En mis pruebas, no he tenido que hacer nada más, pero en algunas documentaciones hablan de modificar también parámetros en el registro de sistema. Como ya hje dicho, yo no tuve que hacer nada más, una vez configurado en el dichero el sslFlags las webs me comenzaron a funcionar correctamente e IIs me dejó configurar todos los dominio que necesitaba compartiendo la misma IP con diferentes certificados SSL.

·

#seguridad #SERVIDORES #IIS

0 Comentarios

 
 
 

Archivo