Configurar HTTPS/SSL en un cloud service de Azure

Configuración del cloud service

Agregar el certificado al archivo de definición del cloud service

Para asociar un certificado con un endpoint HTTPS es necesario proporcionar un nombre lógico para el certificado, que se utilizará para identificarlo en el servicio. También se debe indicar dónde se almacena el certificado en la máquina virtual que ejecuta una instancia del rol.

En el archivo de definición (ServiceDefinition.csdef) debemos agregar un elemento Certificates, y a esa colección agregarle un Certificate, como se muestra a continuación:

<Certificates>
  <Certificate name="MiCertificado" storeLocation="LocalMachine" storeName="CA" />
</Certificates>

Agregar el endpoint HTTPS

Para agregar un endpoint HTTPS se deberá modificar el archivo de definición del servicio, agregando un nuevo endpoint (además del existente para el protocolo HTTP), indicando el protocolo HTTPS y el puerto 443, junto con el nombre lógico del certificado utilizado:

<Endpoints>
   <InputEndpoint name="HttpIn" protocol="http" port="80" />
   <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MiCertificado" />
</Endpoints>

El archivo de definición del servicio debería quedar con una estructura similar a la siguiente:

<ServiceDefinition name="MiServicioCloud">
  <WebRole name="MiWebRole">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MiCertificado" />
    </Endpoints>
    <Certificates>
      <Certificate name="MiCertificado" storeLocation="LocalMachine" storeName="CA" />
    </Certificates>
  </WebRole>
</ServiceDefinition>

Agregar la huella digital del certificado al archivo de configuración del cloud service

La huella digital (thumbprint) del certificado del archivo de configuración del servicio (ServiceConfiguration.cscfg) empareja el nombre lógico del certificado, proporcionado en el archivo de definición de servicio, con el certificado del almacén. Conservar la huella digital en el archivo de configuración del servicio mantiene los datos del certificado separados del paquete de servicio. Esto permite modificar el certificado sin necesidad de volver a publicar el servicio.

Para agregar la huella digital del certificado al archivo de configuración del servicio se deberá agregar un elemento Certificates, que incluya el elemento Certificate con los datos del certificado, como se muestra a continuación:

<ServiceConfiguration serviceName="MiServicioCloud">
  <Role name="MiWebRole">
    <Instances count="2" />    
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="MiCertificado" thumbprint="8420C0773626D5137A820156EB5BD9D6FDB9BEE9" thumbprintAlgorithm="sha1"/>
    </Certificates>  
  </Role>
</ServiceConfiguration>

Probando la implementación

Para probar que los cambios realizados funcionen correctamente, podemos ejecutar nuestra aplicación en el emulador y verificar que se esté ejecutando correctamente nuestro sitio bajo HTTPS.

Un pensamiento en “Configurar HTTPS/SSL en un cloud service de Azure

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s