Share via


Certificados y App Service Environment, versión 2

Importante

En este artículo se aborda App Service Environment v2, que se usa con planes de App Service aislado. App Service Environment v2 se retirará el 31 de agosto de 2024. Hay una nueva versión de App Service Environment que resulta más fácil de usar y se ejecuta en una infraestructura más eficaz. Para aprender más sobre la nueva versión, empiece por consultar la Introducción a App Service Environment. Si actualmente usa App Service Environment v2, siga los pasos descritos en este artículo para migrar a la nueva versión.

A partir del 29 de enero de 2024, no se podrán crear recursos de App Service Environment v2 mediante cualquiera de los métodos disponibles, lo que incluye las plantillas de ARM/Bicep, Azure Portal, la CLI de Azure o la API REST. Debe migrar a App Service Environment v3 antes del 31 de agosto de 2024 para evitar la eliminación de recursos y la pérdida de datos.

Una instancia de App Service aislado es una implementación de Azure App Service que se ejecuta en su instancia de Azure Virtual Network (VNet). Se puede implementar con un punto de conexión de la aplicación accesible a Internet o un punto de conexión de la aplicación que se encuentra en la red virtual. Si App Service aislado se implementa con un punto de conexión accesible a Internet, dicha implementación se denomina App Service aislado externo. Si App Service aislado se implementa con un punto de conexión en la red virtual, dicha implementación se denomina App Service aislado con ILB. Puede obtener más información sobre App Service aislado con ILB en el documento Creación y uso de App Service aislado con ILB.

App Service aislado es un sistema de inquilino único. Debido a esto, existen algunas características que solo están disponibles con App Service aislado que no está disponible en la instancia de App Service multiinquilino.

Certificados de App Service aislado con ILB

Si usa una instancia de App Service Environment externo, se establece contacto con las aplicaciones en <appname>.<asename>.p.azurewebsites.net. De forma predeterminada, todas las instancias de App Service aislado, incluso las de App Service aislado con ILB, se crean con certificados que siguen ese formato. Cuando tiene una instancia de App Service aislado con ILB, se establece contacto con las aplicaciones según el nombre de dominio que especifique al crear App Service aislado con ILB. Para que las aplicaciones admitan TLS, debe cargar los certificados. La obtención de un certificado TLS/SSL válido se realiza mediante autoridades de certificados internas, la adquisición de un certificado de un emisor externo o el uso de un certificado autofirmado.

Hay dos opciones para configurar certificados con App Service aislado con ILB. Puede establecer un certificado predeterminado de carácter comodín para App Service aislado con ILB o bien certificados en las aplicaciones web individuales de App Service aislado. Independientemente de la opción que escoja, es necesario configurar correctamente los siguientes atributos del certificado:

  • Firmante: el valor de este atributo tiene que establecerse como *.[su-dominio-raíz] en el caso de un certificado de App Service Environment con ILB de carácter comodín. Si crea el certificado para la aplicación, debe ser [appname].[su-dominio-raíz].
  • Nombre alternativo del firmante: este atributo tiene que incluir tanto *.[su-dominio-raíz] como *.scm.[su-dominio-raíz] para el certificado de App Service Environment con ILB de carácter comodín. Si crea el certificado para la aplicación, debe ser [appname].[su-dominio-raíz] y [appname].scm.[su-dominio-raíz].

Como tercera variante, puede crear un certificado de App Service aislado con ILB que incluya todos los nombres de las aplicaciones individuales del SAN del certificado en lugar de usar una referencia de carácter comodín. El problema con este método es que necesita conocer por adelantado los nombres de las aplicaciones que va a incluir en App Service aislado o mantener actualizado el certificado de App Service aislado con ILB.

Carga del certificado en App Service aislado con ILB

Después de crear una instancia de App Service aislado con ILB en el portal, se debe establecer el certificado para dicha instancia. Hasta que no se establezca, App Service aislado mostrará un banner indicando que no se ha establecido el certificado.

El certificado que cargue debe ser un archivo .pfx. Después de cargar el certificado, pasan unos 20 minutos antes de que se utilice el certificado.

No puede crear la instancia de App Service aislado ni cargar el certificado como una acción en el portal o en una plantilla. De forma alternativa, puede cargar el certificado mediante una plantilla según se describe en el documento Creación de una instancia de App Service aislado mediante una plantilla.

Si quiere crear un certificado autofirmado rápidamente para realizar pruebas, puede usar el siguiente fragmento de PowerShell:

$certificate = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "cert:\localMachine\my\" + $certificate.Thumbprint
$password = ConvertTo-SecureString -String "CHANGETHISPASSWORD" -Force -AsPlainText

$fileName = "exportedcert.pfx"
Export-PfxCertificate -cert $certThumbprint -FilePath $fileName -Password $password

Al crear un certificado autofirmado, deberá asegurar que el nombre del sujeto tiene el formato de CN = {ASE_NAME_HERE} _InternalLoadBalancingASE.

Certificados de aplicación

Las aplicaciones hospedadas en una instancia de App Service aislado pueden usar las características de los certificados centradas en la aplicación que están disponibles en la instancia de App Service multiinquilino. Estas características son:

  • Certificados SNI
  • SSL basada en IP, que solo es compatible con una instancia de App Service aislado externo. Una instancia de App Service aislado con ILB no es compatible con la SSL basada en IP.
  • Certificados hospedados en Key Vault

Las instrucciones para cargar y administrar dichos certificados están disponibles en Adición de un certificado TLS/SSL en Azure App Service. Si está configurando los certificados simplemente para que coincidan con un nombre de dominio personalizado que ha asignado a la aplicación web, esas instrucciones serán suficientes. Si va a cargar el certificado para una aplicación web de App Service aislado con ILB con el nombre de dominio predeterminado, a continuación, especifique el sitio de SCM en la SAN del certificado como se indicó anteriormente.

Configuración de TLS

TLS se puede configurar en un nivel de aplicación.

Certificado de cliente privado

Es un caso de uso común consiste en configurar la aplicación como un cliente en un modelo cliente/servidor. Si protege el servidor con un certificado de entidad de certificación privado, deberá cargar el certificado de cliente en la aplicación. Las instrucciones siguientes servirán para la carga de certificados en el almacén de confianza de los trabajadores en el que se ejecuta la aplicación. Si carga el certificado en una aplicación, se puede utilizar con el resto de aplicaciones en el mismo plan de App Service sin volver a cargar el certificado.

Para cargar el certificado en la aplicación de App Service aislado:

  1. Genere un archivo .cer para el certificado.

  2. Vaya a la aplicación que necesita el certificado en Azure Portal.

  3. Vaya a la configuración de SSL en la aplicación. Haga clic en Cargar certificado. Seleccione Público. Seleccione Máquina local. Proporcione un nombre. Busque y seleccione el archivo .cer. Seleccione Cargar.

  4. Copie la huella digital.

  5. Vaya a Configuración de la aplicación. Cree una configuración de aplicación WEBSITE_LOAD_ROOT_CERTIFICATES con la huella digital como valor. Si tiene varios certificados, puede colocarlos en la misma configuración separados por comas y sin espacios en blanco, como se muestra a continuación:

    84EC242A4EC7957817B8E48913E50953552DAFA6,6A5C65DC9247F762FE17BF8D4906E04FE6B31819

El certificado estará disponible para todas las aplicaciones del mismo plan de App Service que la aplicación que configuró dicho valor. Si necesita que esté disponible para las aplicaciones en otro plan de App Service, deberá repetir la operación Configuración de la aplicación en una aplicación en dicho plan de App Service. Para comprobar si el certificado está establecido, vaya a la consola de Kudu y emita este comando en la consola de depuración de PowerShell.

dir cert:\localmachine\root

Para realizar pruebas, puede crear un certificado autofirmado y generar un archivo .cer con el siguiente comando de PowerShell:

$certificate = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname "*.internal.contoso.com","*.scm.internal.contoso.com"

$certThumbprint = "cert:\localMachine\my\" + $certificate.Thumbprint
$password = ConvertTo-SecureString -String "CHANGETHISPASSWORD" -Force -AsPlainText

$fileName = "exportedcert.cer"
export-certificate -Cert $certThumbprint -FilePath $fileName -Type CERT