Exportar (0) Imprimir
Expandir todo

Configurar un certificado SSL en un extremo HTTPS

Actualizado: febrero de 2014

Para agregar un extremo HTTPS a un rol en el servicio de Windows Azure y asociarlo con un certificado SSL, debe seguir estos pasos:

  1. Obtenga un certificado SSL de una entidad de certificación. Para obtener más información, vea Obtener un certificado SSL.

  2. Agregue el certificado al almacén de certificados del servicio hospedado. Para obtener más información, vea la sección Cargar el certificado en Windows Azure.

  3. Agregue la huella digital del certificado al archivo de configuración del servicio. Para obtener más información, vea la sección Agregar la huella digital del certificado al archivo de configuración del servicio.

  4. Actualice el archivo de definición de servicio para identificar el certificado ante el servicio hospedado. Para obtener más información, vea la sección Agregar el certificado al archivo de definición de servicio.

  5. Configure el extremo HTTPS en el archivo de definición de servicio, y asócielo con el certificado. Para obtener más información, vea la sección Configurar el extremo HTTPS.

  6. Configure un registro CNAME para el nombre de dominio para el que se emite el certificado SSL con el fin de redirigir el tráfico al servicio. Para obtener más información acerca de cómo configurar CNAME, vea Configuración de un nombre de dominio personalizado para un servicio en la nube de Windows Azure.

Al probar el extremo HTTPS en el entorno de desarrollo, toda la autenticación se lleva a cabo utilizando un certificado autofirmado proporcionado para 127.0.0.1. Vea la sección titulada Probar un extremo HTTPS en el emulador de proceso más adelante en este tema para obtener más información.

Un certificado SSL que se utiliza para proteger un extremo HTTPS en Windows Azure debe tener las características siguientes:

  • El certificado debe contener una clave privada.

  • El propósito del certificado debe ser Autenticación de servidor.

  • El nombre de sujeto del certificado debe coincidir con el nombre de dominio utilizado para tener acceso al servicio.

  • Requiere un tamaño mínimo de clave criptográfica de 2.048 bits.

noteNota
Si utiliza Windows Azure Tools para Microsoft Visual Studio para desarrollar el servicio, puede configurar un extremo HTTPS mediante las páginas de propiedades para el rol.

Windows Azure proporciona un almacén de certificados seguro donde puede mantener los certificados para el servicio hospedado. Cuando se asocia un certificado con el servicio y se carga el certificado en el almacén, Windows Azure implementa automáticamente el certificado en las VM en las que se están ejecutando las instancias de rol. Para obtener más información sobre el almacén de certificados, vea Administrar certificados.

Para cargar el certificado en el almacén de certificados, siga estos pasos en Agregar un nuevo certificado al almacén de certificados.

La huella digital del certificado del archivo de configuración del servicio 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 le permitirá a usted o a un director de TI actualizar el certificado sin necesidad de volver a implementar el servicio.

Para mostrar el certificado y su huella digital en el archivo de configuración del servicio, modifique el archivo de configuración y agregue la colección Certificates a la entrada para el rol. Agregue un elemento Certificate a la colección Certificates y especifique el nombre lógico del certificado. Asegúrese de utilizar el mismo nombre especificado en el archivo de definición de servicio. Por último, especifique la huella digital del certificado y el algoritmo utilizado para generarla, como se muestra en este ejemplo:


<ServiceConfiguration serviceName="MyService">
  <Role name=" MyWorkerRole">
    <Instances count="5" />    
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="MySSLCert" thumbprint="8420C0773626D5137A820156EB5BD9D6FDB9BEE9" thumbprintAlgorithm="sha1"/>
    </Certificates>  
  </Role>
</ServiceConfiguration>

Para obtener más información sobre cómo conseguir la huella digital de un certificado, vea la sección “Crear un certificado X.509 v3” de Crear un certificado del servicio para Windows Azure.

Para asociar un certificado con un extremo 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 de servicio, agregue el elemento Certificates a la definición del rol. En la colección Certificates, agregue una entrada para el certificado, como se muestra en este ejemplo:


  <WorkerRole name="MyWorkerRole" vmsize="Small">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      . . .
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

En este ejemplo, la ubicación del almacén se establece en LocalMachine, y el nombre del almacén se establece en My. Estos dos atributos indican dónde se instalará el certificado (identificado aquí como MySSLCert) en la VM.

Puede seleccionar cualquier nombre para el atributo name del certificado. Solo utilizará este nombre para hacer referencia al certificado en la definición para el extremo HTTPS y en el archivo de configuración del servicio.

Para agregar un extremo HTTPS al rol, modifique el archivo de definición de servicio y agregue un elemento InputEndpoint a la colección Endpoints para el rol. Especifique un nombre para el extremo, el protocolo (HTTPS) y el puerto. A continuación, especifique el nombre lógico del certificado definido en la colección Certificates del rol.

En el procedimiento siguiente se muestra cómo agregar un extremo de entrada HTTP para un rol web que escucha en el puerto 80 y también define un extremo HTTPS que escucha en el puerto 443:

  1. Abra el archivo ServiceDefinition.csdef para el servicio en el editor de texto.

  2. Agregue el elemento de la colección Certificates que contenga un elemento Certificate al rol protegido mediante SSL. Establezca el atributo de nombre en el nombre del certificado. Establezca los atributos storeLocation y storeName para especificar la ubicación del certificado en la máquina virtual.

        
    <Certificates>
       <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
    
    
  3. Agregue el elemento de la colección Endpoints que contiene los elementos InputEndpoint al rol protegido mediante SSL. Establezca el atributo certificate del extremo de entrada de HttpsIn para que coincida con el nombre del certificado especificado en la colección de certificados.

       
    <Endpoints>
       <InputEndpoint name="HttpIn" protocol="http" port="80" />
       <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    
    
  4. Guarde el archivo.

La definición de servicio completa se asemejará al ejemplo siguiente.


<ServiceDefinition name="MyService">
  <WorkerRole name="MyWorkerRole">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

De forma predeterminada, el emulador de proceso se basa en un certificado autofirmado para la dirección IP 127.0.0.1, que corresponde a localhost. Si se produjo un problema al instalar o configurar el certificado configurado en los pasos anteriores, el emulador de proceso tendrá como comportamiento predeterminado la autenticación con este certificado autofirmado en lugar de con el certificado personalizado. Si la implementación utiliza de forma predeterminada un certificado SSL para 127.0.0.1 aunque se haya definido otro certificado, asegúrese de que el certificado personalizado no tiene ningún error y está instalado correctamente.

De forma predeterminada, el certificado autofirmado que utiliza el emulador de proceso no es de raíz de confianza. Cuando acceda al HTTPS, recibirá un error de certificado a menos que agregue el certificado al almacén de entidades de certificación raíz de confianza en el equipo local. Puede omitir el error, o puede agregar el certificado a la raíz de confianza para eliminarlo.

Al ejecutar el servicio hospedado en el emulador de proceso de Windows Azure, es posible que el puerto SSL se establezca en un valor distinto de 443 (a menudo 444 o 445.) Si el puerto especificado no está disponible, para un extremo HTTPS 443, el emulador de proceso aumentará el número de puerto hasta que encuentre uno libre.

Para utilizar el puerto 443, debe cerrar la aplicación o el sitio web que esté usando el puerto, salir y reiniciar el emulador de proceso para volver a cargar la lista de puertos disponibles. El cierre y reinicio del emulador no vuelve a cargar la lista de puertos disponibles.

Para determinar si el puerto 443 está en uso, puede abrir un símbolo del sistema y utilizar el comando NETSTAT. Para obtener más información acerca del comando NETSTAT, vea Netstat.

Si no dispone de un certificado emitido por una entidad de certificación, puede generar un certificado autofirmado para utilizarlo con el servicio de Windows Azure.

noteNota
Este certificado autofirmado es distinto del utilizado por el entorno de desarrollo. Ese certificado se proporciona automáticamente y solo se utiliza para la autenticación en el entorno de desarrollo.

Cuando acceda a un extremo HTTPS asociado con un certificado autofirmado en Windows Azure, aparecerá un error de certificado en el explorador. El uso de un certificado firmado por una entidad de certificación eliminará este problema; mientras tanto, puede omitir el error.

Vea también

Mostrar:
© 2014 Microsoft