En este post quiero hablarte de cómo Application Gateway también puede actuar de terminador SSL ¿Esto qué quiere decir? Básicamente que te ayuda a tener conexiones seguras desde el cliente al backend, cifrando las peticiones en tránsito. Te ayuda además a liberar a los servidores del backend del proceso de cifrado y descifrado de los mensajes, el cual suele ser bastante costoso.

Cuando configuramos Application Gateway con SSL este termina las sesiones SSL en el gateway y descifra el tráfico del usuario. Después utiliza las reglas configuradas para elegir a qué backend pool debe enrutar el tráfico, hace la petición al backend y vuelve a cifrar los datos utilizando el certificado de clave pública, configurado previamente, antes de transmitir dicha petición.

La forma de configurar esta característica es bastante sencilla:
Crea un certificado autofirmado
Existe una forma súper sencilla de crear certificados autofirmados desde PowerShell y es utilizando el comando New-SelfSignedCertificate:
New-SelfSignedCertificate `
-certstorelocation cert:\localmachine\my `
-dnsname www.azuredemo.es
Al lanzar New-SelfSignedCertificate crearás dicho certificado en tu máquina y te devolverá el thumbprint del mismo. Con este debes lanzar el siguiente comando para exportar la clave pública que necesitarás importar a Application Gateway:
$pwd = ConvertTo-SecureString -String "Azure123456!" -Force -AsPlainText
Export-PfxCertificate `
-cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
-FilePath c:\appgwcert.pfx `
-Password $pwd
El resultado será guardado en c:\

Crear listener y rule
Para este post vamos a utilizar el Application Gateway que creamos en el post anterior, por lo que si no lo tienes creado puedes seguir los mismos pasos que te conté ayer. Accede al apartado Listeners y haz clic en la opción Basic.

Elige un nombre para el listener, un nombre para el frontend port y el puerto 443. Selecciona la opción HTTPS e importa el certificado que creaste en el paso anterior.

(Es posible que tarde en actualizar unos segundos…)
Una vez que se haya generado el nuevo listener, crea una regla de tipo básica que asocie el listener al backend pool al cual debe redirigirse.

En este caso, el backend pool está asociado a un Http Setting que se comunica con el mismo a través del puerto 80. Por supuesto, también sería posible que App Gateway se conecte al backend a través del puerto 443 con su certificado correspondiente, teniendo un cifrado de extremo a extremo.
Para comprobar que la configuración es correcta, accede a través del navegador a tu Application Gateway utilizando https en lugar de http.

¡Saludos!