Reservar una IP para Microsoft Azure Web Sites

Una de las nuevas características que apareció este año es la reserva de IPs públicas. Sin embargo, a día de hoy estas reservas sólo están disponibles para los servicios Virtual Machines y Cloud Services, por lo que deja fuera de momento al servicio Web Sites.

Una comprobación interesante es que si tenemos varios sitios web dentro de una misma región, podemos comprobar a través de nslookup que la IP pública que utilizan es compartida entre ellos:

nslookup websites

Para conseguir que uno de los sitios tenga su propia IP pública, una opción que tenemos ahora mismo es configurar el binding SSL basado en IP, con el objetivo de forzar una IP reservada para este sitio. Para poder realizar esta configuración, el sitio debe estar en modo Standard y tener configurado un CNAME para el DNS. La forma de cambiar de un modo a otro es bastante sencilla, ya que sólo es necesario modificar el modo en el apartado SCALE:

web hosting plan mode

Para la configuración del dominio para el sitio, podemos recurrir a la siguiente documentación: Configuring a custom domain name for an Azure Web Site. En ella se pueden encontrar los proveedores de dominio más comunes y la forma de configurarlo en cada uno de ellos:

Configuring a custom domain name for a Azure Web Site

Otro requisito para la configuración del SSL binding es obtener un certificado. Es posible utilizar uno firmado por nosotros mismos, por lo que haremos uso de MakeCert para su creación. Esta acción podemos llevarla a cabo a través de Developer Command Prompt for VS2013, ejecutando lo siguiente:

makecert -r -pe -b 07/19/2014 -e 07/19/2019 -eku 1.3.6.1.5.5.7.3.1 -ss My -n CN=www.returngis.net -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 -len 2048

Es muy importante saber que el Subject Name (-n) debe coincidir con el dominio personalizado que hemos asociado al sitio web. En la documentación oficial se explican otros métodos para obtener este certificado. Para poder subirlo a la plataforma es necesario exportar el mismo junto con la clave privada (.pfx). Para ello, podemos acceder al apartado de certificados de nuestra máquina y hacer uso de la acción export, o bien podemos utilizar PowerShell para realizar la misma tarea:

$mypwd = ConvertTo-SecureString -String "!MyPassW0rd" -Force -AsPlainText
get-childitem cert:currentusermy -dnsname www.returngis.net | export-pfxcertificate -filepath H:downloadsslcert.pfx -password $mypwd

Accedemos al portal y subimos el pfx a través de la sección certificates:

SSL Certificates

Los certificados y datos utilizados son fictícios. En ningún caso se está mostrando información real.

Una vez que el certificado está subido correctamente, basta con seleccionar los valores en la sección ssl bindings:

ssl bindings section

Justo en este momento se nos alertará de que este cambio en la configuración supone un aumento en la facturación, ya que SSL supone un coste adicional.

SSL binding pricing impact

Más información.

Una vez guardados los cambios, el apartado de quick glance se actualizará de este estado:

VIP No Ip-based SSL Binding

A este otro:

Virtual IP Address for Azure Web Site

Espero que sea de utilidad.

¡Saludos!