En la 2da parte de esta serie, realizaremos el paso a paso de la publicacion de un sitio a través de Azure Application Gateway con SSL Offloading en un ambiente de laboratorio.
Escenario:
- 1 App Gateway llamado “madsblogtest-ag-waf“, tier WAF V2.
- 1 App Service llamado “test-madsblog” (Web App).
Objetivo:
- Realizaremos la publicación de este App Service utilizando SSL Offloading en Azure Application Gateway.
- URL Publica: test-site.madsblog.net.
- Utilizaremos un certificado de Lets Encrypt.
Creación de Backend Pool
Debemos ingresar a nuestro AppGateway, en el menú izquierdo ir a Backend Pools y hacer click en Add:
Agregamos nuestro App Service “test-madsblog” como backend pool.
Creación de Backend Settings
En el menú izquierdo ir a Backend Settings en el menu izquierdo de nuestro app gateway y hacer click en Add:
Aquí es importante que configuremos el tráfico HTTP para nuestro Backend. Esto nos permitirá realizar el SSL Termination a nivel del App Gateway.
Creación de Custom Probe
Crearemos el Custom Probe para que la salud de nuestro backend sea vigilada de manera correcta por nuestro App Gateway.
Debido al SSL Termination, el trafico que vigilaremos con nuestra health probe será trafico HTTP desde el AppGateway al Backend.
Upload Certificado
Antes de crear el Listener de nuestro host debemos realizar el upload del certificado de Lets Encrypt. Debemos ir a Listeners y clickear en la solapa Listener TLS certificates (preview):
Ahora subimos el cert en PFX!
Ya tendremos disponible nuestro certificado para su uso en el App Gateway.
Creación Listener
Ahora si, podemos proceder a crear el Listener.
En este caso configuraremos un site unicamente para el DNS Name test-site.madsblog.net, debido a que es el unico hostname que soporta nuestro certificado. Es importante tener en cuenta que podemos configurar mas de un DNS Name para el listener, pero debemos tenerlo en cuenta a la hora de solicitar el certificado.
Creación de Routing Rule
Ahora para que todos los elementos están configurados en nuestro AppGateway: Backend Pool + Settings, Custom Health Probe y Listener (con certificado), podemos configurar nuestra regla de ruteo.
Debemos a Rules y hacer click en Add:
Aquí podríamos agregar un path para tener diferentes rutas de trafico y así mismo granularizar nuestro listener. En este caso no abarcaremos esta funcionalidad.
Configuración de Registro DNS:
Ahora podemos apuntar nuestro Registro DNS publico de test-site.madsblog.net. Para esto debemos entrar a nuestro DNS publico y configurar el registro CNAME apuntando a el DNS Name publico de nuestro App Gateway.
Este detalle lo encontraemos en la sección de Public Front End Settings de nuestro App Gateway.
Listo! Ahora ya tenemos publicado nuestro site a través de Azure Application Gateway, pero falta algo mas…
Si intentamos conectarnos ahora a nuestro Site a través de la URL Publica, vamos a tener un error:
Esto sucede ya que ademas de configurar nuestra publicación debemos asegurarnos que nuestro AppGateway pueda comunicarse correctamente con el App Service. Vamos a verlo:
Configuración de App Service (Web App)
En primera instancia debemos ocuparnos de 2 settings:
1) Habilitar trafico HTTP! Los App Service no aceptan trafico HTTP por defecto, debemos habilitarlo de manera manual:
- Debemos ir a nuestra Web App.
- Ingresar en Configuration>General Settings:
2) Habilitar nuestro Custom Domain. Para poder usar un domiunio diferente a *.azurewebsites.net debemos configurar manualmente el costom domain en nuestra WebApp. Hace click aquí para ver el paso a paso.
El Domain quedará en No binding ya que NO utilizará SSL a nivel de Backend. Esta configuración debemos realizarla unicamente para que nuestro App Service soporte la conexión con ese nombre de dominio.
Restricción de trafico en el Backend
Por ultimo para completar las configuraciones a nivel de seguridad. Debemos restringir el acceso en nuestro App Service para que SOLO permita trafico desde nuestro App Gateway.
Esto mismo debemos hacer con cualquier otro backend.
Prueba de acceso
Ahora si, una vez realizados estos pasos podemos corroborar el acceso seguro a nuestro Site a través de Azure AppGateway con TLS/SSL Termination 🙂
Leave a Reply