Compartir a través de


Habilitación de la comunicación HTTPS en Azure Cloud Services (soporte extendido)

La comunicación con Microsoft Azure Cloud Services (soporte extendido) se realiza mediante el protocolo Protocolo seguro de transferencia de hipertexto (HTTPS). En este artículo se describe cómo habilitar la comunicación HTTPS para Cloud Services (soporte extendido).

Requisitos previos

Pasos generales para la implementación del proyecto

Los pasos generales para implementar un proyecto de Cloud Services (soporte extendido) en Azure son los siguientes:

  1. Prepare el certificado.

  2. Configura tu proyecto.

  3. Empaquete el archivo del proyecto en los archivos de definición de servicio (.csdef), configuración de servicio (.cscfg) y paquete de servicio (.cspkg) del servicio en la nube.

  4. Cambie la configuración del recurso de Cloud Services (soporte extendido), si es necesario. Por ejemplo, podría realizar cualquiera de las siguientes modificaciones:

    1. Actualice la dirección URL del paquete.
    2. Configure la configuración de dirección URL.
    3. Actualice la configuración de secretos del sistema operativo.
  5. Implemente y actualice el nuevo proyecto en Azure.

Nota:

El proyecto se puede implementar a través de varios métodos diferentes, como mediante las siguientes herramientas:

  • Visual Studio
  • Una plantilla de Azure Resource Manager (plantilla de ARM)
  • Una herramienta de integración continua y entrega continua (CI/CD), como Azure DevOps

Independientemente del método de implementación, los pasos generales de implementación son los mismos.

Los dos primeros pasos son necesarios para todos los métodos de implementación. Estos pasos se describen en la sección Cambios de código . Los pasos restantes también son importantes, pero no siempre requieren intervención manual del usuario. Por ejemplo, una herramienta como Visual Studio podría realizar automáticamente los pasos. Los tres últimos pasos se describen en la sección Cambios de configuración .

Cambios en el código

Para realizar los cambios de código para preparar el certificado y configurar el proyecto, siga estos pasos:

  1. Siga las instrucciones para cargar un certificado en el almacén de claves en el paso 6.

  2. Anote la huella digital del certificado (una cadena hexadecimal de 40 dígitos).

  3. En el archivo de configuración del servicio (.cscfg) del proyecto, agregue la huella digital del certificado al rol en el que desea usar el certificado. Por ejemplo, si desea usar el certificado como certificado SSL para comunicarse con un WebRole, puede agregar código XML similar al fragmento de código siguiente para WebRole1 como primer elemento secundario del elemento raíz ServiceConfiguration :

    <Role name="WebRole1">
      <Instances count="1" />
      <Certificates>
        <Certificate
          name="Certificate1"
          thumbprint="0123456789ABCDEF0123456789ABCDEF01234567"
          thumbprintAlgorithm="sha1"
        />
      </Certificates>
    </Role>
    

    Puede personalizar el nombre del certificado, pero debe coincidir con el nombre del certificado que se usa en el archivo de definición de servicio (.csdef).

  4. En el archivo de definición de servicio (.csdef), agregue los siguientes elementos.

    XPath primario Elementos que se van a agregar Atributos que se van a usar
    /ServiceDefinition/WebRole/Sites/Site/Bindings Binding name, endpointName
    /ServiceDefinition/WebRole/Endpoints InputEndpoint name, protocol, port, certificate
    /ServiceDefinition/WebRole Certificates/Certificate name, storeLocation, storeName, permissionLevel

    El Certificates elemento debe agregarse directamente después de la etiqueta de cierre Endpoints . No contiene ningún atributo. Solo contiene elementos secundarios Certificate .

    Por ejemplo, el archivo de definición de servicio podría parecerse al siguiente código XML:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="CSESOneWebRoleHTTPS" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
      <WebRole name="WebRole1" vmsize="Standard_D1_v2">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
              <Binding name="HttpsIn" endpointName="HttpsIn" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
          <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="Certificate1" />
        </Endpoints>
        <Certificates>
          <Certificate name="Certificate1" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" />
        </Certificates>
      </WebRole>
    </ServiceDefinition>
    

    En este ejemplo, el archivo de definición de servicio se modifica para enlazar un punto de conexión de entrada del HttpsIn protocolo HTTPS en el puerto 443. Usa el Certificate1 certificado de un almacén que tiene un nombre de My y una ubicación de LocalMachine solo para un nivel de permisos limitado o elevado. Los nombres de certificado de los InputEndpoint elementos y Certificate coinciden entre sí. También coinciden con el nombre del certificado que se usó en el archivo de configuración del servicio (.cscfg) del paso anterior.

Cambios en la configuración

Las instrucciones para cambiar la configuración del servicio en la nube difieren según cómo se implementó el servicio en la nube. Estas instrucciones se muestran en las pestañas siguientes. Cada pestaña representa un método de implementación diferente.

Antes de continuar, consulte Implementación de Azure Cloud Services (soporte extendido) mediante Azure Portal. A continuación, siga estos pasos para realizar los cambios de configuración correctos a través de Azure Portal:

  1. Vaya a la entrada de blog titulada Migración manual del servicio en la nube clásico al soporte extendido del servicio en la nube con la plantilla de ARM y siga los pasos del 7 al 9. Estas instrucciones muestran cómo realizar los pasos siguientes:

    • Empaquetar el proyecto.

    • Cargue los archivos del paquete de servicio generado (<project-name.cspkg>) y la configuración del servicio en la nube (ServiceConfiguration.Cloud.cscfg) en un contenedor de cuentas de almacenamiento para el servicio en la nube.

      Nota:

      También tendrá que cargar el archivo de definición de servicio (ServiceDefinition.csdef) mediante el mismo proceso que se describe para los otros dos archivos.

    • Genere una dirección URL de firma de acceso compartido (SAS) para cada uno de los archivos cargados.

  2. En Azure Portal, vuelva a la página Información general del servicio en la nube y seleccione Actualizar.

  3. En la página Actualizar servicio en la nube, realice los siguientes cambios en la pestaña Aspectos básicos:

    1. En el campo Ubicación de definición de paquete, configuración y servicio, seleccione Desde blob.

    2. En el campo Cargar un paquete (.cspkg, .zip), siga estos pasos:

      1. Seleccione el vínculo Examinar .
      2. Seleccione la cuenta de almacenamiento y el contenedor en los que cargó los archivos.
      3. En la página del contenedor, seleccione el archivo correspondiente (en este caso, project-name.cspkg) y, a continuación, <seleccione el botón Seleccionar.>
    3. Para el campo Cargar una configuración (.cscfg) (y el archivo ServiceConfiguration.Cloud.cscfg ), repita el subprocedimiento que se describe en el paso anterior.

    4. Para el campo Cargar una definición de servicio (.csdef) (y el archivo ServiceDefinition.csdef ), repita el subprocedimiento de nuevo.

  4. Seleccione la pestaña Configuración.

  5. En el campo Almacén de claves, seleccione el almacén de claves en el que cargó el certificado (anteriormente en la sección Cambios de código ). Una vez que el certificado se encuentra en el almacén de claves seleccionado, el certificado enumerado muestra un estado encontrado.

  6. Para implementar el proyecto recién configurado, seleccione el botón Actualizar .

Después de realizar los cambios de configuración, los clientes podrán comunicarse con el sitio web de servicios en la nube mediante el protocolo HTTPS. Si el certificado está autofirmado, el explorador podría notificar una advertencia de que el certificado no es seguro, pero el explorador no bloqueará la conexión.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.