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.
De Primera Categoría! Gracias por este post – que estaba buscando estas explicaciones largo tiempo. He seguido todas sus instrucciones y funciona muy bien.