Incorporación y administración de certificados TLS/SSL en Azure App Service
Nota:
A partir del 1 de junio de 2024, todas las aplicaciones de App Service recién creadas tendrán la opción de generar un nombre de host predeterminado único mediante la convención de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net
. Los nombres de aplicación existentes permanecerán sin cambios.
Ejemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para más información, consulte Nombre de host predeterminado único para el recurso App Service.
Puede agregar certificados de seguridad digital para usarlos en el código de la aplicación, o bien para ayudar a proteger nombres DNS personalizados en Azure App Service, que proporciona un servicio de hospedaje web con aplicación automática de revisiones muy escalable. Los llamados certificados de seguridad de la capa de transporte (TLS), conocidos anteriormente como certificados de capa de socket seguro (SSL), son certificados privados o públicos que ayudan a proteger las conexiones a Internet mediante el cifrado de los datos enviados entre el explorador del usuario, los sitios web que visite y el servidor del sitio web.
La tabla siguiente enumera las opciones que hay para agregar certificados en App Service:
Opción | Descripción |
---|---|
Crear un certificado administrado de App Service gratuito | Certificado privado que es gratuito y fácil de usar si solo necesita mejorar la seguridad del dominio personalizado en App Service. |
Importación de un certificado de App Service | Es un certificado privado administrado por Azure. Combina la simplicidad de la administración automatizada de certificados con la flexibilidad de las opciones de renovación y exportación. |
Importación de un certificado de Key Vault | Resulta útil si usa Azure Key Vault para administrar los certificados PKCS12. Consulte Requisitos de certificados privados. |
Carga de un certificado privado | Si ya tiene un certificado privado de un proveedor de terceros, puede cargarlo. Consulte Requisitos de certificados privados. |
Carga de un certificado público | Los certificados públicos no se usan para proteger los dominios personalizados, pero se pueden cargar en el código si los necesita para acceder a los recursos remotos. |
Requisitos previos
Cree una aplicación de App Service. El plan de App Service de la aplicación debe ser del nivel Básico, Estándar, Premium o Aislado. Consulte Escalado vertical de una aplicación para actualizar el nivel.
En el caso de los certificados privados, debe asegurarse de que satisface todos los requisitos de App Service.
Solo certificados gratuitos:
Asigne a App Service el dominio en el que desea el certificado. Para más información, consulte Tutorial: Asignación de un nombre DNS personalizado existente a Azure App Service.
En el caso de los dominios raíz (como contoso.com), asegúrese de que la aplicación no tenga ninguna restricción de IP configurada. Para que se puedan crear y renovar los certificados de un dominio raíz, es necesario que la aplicación sea accesible desde Internet.
Requisitos de certificados privados
El certificado administrado de App Service gratuito o el certificado de App Service ya cumplen los requisitos de App Service. Si opta por cargar o importar un certificado privado en App Service, este certificado debe cumplir los siguientes requisitos:
- Se exporta como un archivo PFX protegido por contraseña, que está cifrado con Triple DES
- Debe contener una clave privada de al menos 2048 bits de longitud.
- Contiene todos los certificados intermedios y el certificado raíz de la cadena de certificados
Si desea ayudar a proteger un dominio personalizado en un enlace TLS, el certificado debe cumplir estos requisitos adicionales:
- Contener un uso mejorado de clave para la autenticación de servidor (OID = 1.3.6.1.5.5.7.3.1)
- Estar firmado por una entidad de certificación de confianza
Nota
Los certificados de criptografía de curva elíptica (ECC) pueden funcionar con App Service, pero están fuera del ámbito de este artículo. Si desea conocer los pasos exactos para crear certificados ECC, consulte a su entidad de certificación.
Nota:
Después de agregar un certificado privado a una aplicación, el certificado se almacena en una unidad de implementación enlazada al grupo de recursos, la región y la combinación del sistema operativo del plan de App Service, que se llama internamente un espacio web. De este modo, el certificado es accesible para otras aplicaciones del mismo grupo de recursos, región y combinación del sistema operativo. Los certificados privados cargados o importados en App Service se comparten con App Services en la misma unidad de implementación.
Puede agregar hasta 1000 certificados privados por espacio web.
Crear un certificado administrado gratuito
El certificado administrado de App Service gratuito es una solución inmediata para ayudar a proteger el nombre DNS personalizado en App Service. Sin intervención por parte del usuario, este certificado de servidor TLS/SSL lo administra App Service completamente y se renueva de forma automática cada seis meses, 45 días antes de la expiración, siempre y cuando no cambien los requisitos previos configurados. Todos los enlaces asociados se actualizarán con el certificado renovado. El usuario creará el certificado, lo enlazará a un dominio personalizado y dejará que App Service haga el resto.
Importante
Antes de crear un certificado administrado gratuito, compruebe que cumple los requisitos previos de la aplicación.
DigiCert emite los certificados gratuitos. En algunos dominios, debe permitir explícitamente DigiCert como emisor de certificados mediante la creación de un registro de dominio de CAA con el valor 0 issue digicert.com
.
Azure administra completamente los certificados en nombre del usuario, por lo que cualquier dato relacionado con el certificado administrado, incluido el emisor raíz, se puede cambiar en cualquier momento. Estos cambios se producen al margen del usuario. Asegúrese de evitar dependencias estrictas y de "anclar" los certificados de práctica al certificado administrado o a cualquier elemento de la jerarquía de certificados. Si necesita el anclaje de certificados, agregue un certificado al dominio personalizado mediante cualquier otro método disponible en este artículo.
El certificado gratuito presenta las siguientes limitaciones:
- No admite certificados comodín.
- No admite el uso como certificado de cliente mediante la huella digital del certificado, cuya retirada está prevista.
- No admite DNS privado.
- No se puede exportar.
- No es compatible con un servicio App Service Environment.
- Solo admite caracteres alfanuméricos, guiones (-) y puntos (.).
- Solo se admiten dominios personalizados de una longitud de hasta 64 caracteres.
- Debe tener un registro D que apunte a la dirección IP de la aplicación web.
- Debe estar en aplicaciones a las que se pueda acceder de manera pública.
- No es compatible con los dominios raíz que se integran con Traffic Manager.
- Debe cumplir todos los puntos anteriores para la correcta emisión y renovación de certificados.
En Azure Portal, en el menú de la izquierda, seleccione App Services><nombre-de-aplicación>.
En el menú de navegación de la aplicación, seleccione Certificados. En el panel Certificados administrados, seleccione Agregar certificado.
Seleccione el dominio personalizado para el certificado gratuito y, luego, seleccione Validar. Una vez que finalice la validación, seleccione Agregar. Solo puede crear un certificado administrado para cada dominio personalizado admitido.
Una vez que la operación se haya completado, verá el certificado en la lista de Certificados administrados.
Para proporcionar seguridad para un dominio personalizado mediante este certificado, aún necesita crear un enlace de certificado. Siga los pasos descritos en Protección de un nombre DNS personalizado con un enlace TLS/SSL en Azure App Service.
Importación de un certificado de App Service
Para importar un certificado de App Service, primero compre y configure un certificado de App Service y siga los pasos a continuación.
En Azure Portal, en el menú de la izquierda, seleccione App Services><nombre-de-aplicación>.
En el menú de navegación de la aplicación, seleccione Certificados>Aportación de sus propios certificados (.pfx)>Agregar certificado.
En Origen, seleccione Importar App Service Certificate.
En Certificado de App Service, seleccione el certificado que acaba de crear.
En Nombre descriptivo del certificado, asigne un nombre al certificado en la aplicación.
Seleccione Validar. Una vez que la validación se haya realizado correctamente, seleccione Agregar.
Una vez que la operación se haya completado, verá el certificado en la lista de certificados propios aportados.
Para ayudar a proteger un dominio personalizado mediante este certificado, aún necesita crear un enlace de certificado. Siga los pasos descritos en Protección de un nombre DNS personalizado con un enlace TLS/SSL en Azure App Service.
Importación de un certificado de Key Vault
Si usa Azure Key Vault para administrar los certificados, puede importar un certificado PKCS12 de Key Vault en App Service, siempre que cumpla los requisitos.
Autorización a App Service para leer desde el almacén
De forma predeterminada, el proveedor de recursos de App Service no tiene acceso al almacén de claves del usuario. A fin de usar un almacén de claves para una implementación de certificados, debe autorizar el acceso de lectura al almacén de claves para el proveedor de recursos (App Service). Puede conceder acceso con la directiva de acceso o RBAC.
Proveedor de recursos | Id. de la aplicación de la entidad de servicio o usuario asignado | Rol RBAC del almacén de claves |
---|---|---|
Microsoft Azure App Service o Microsoft.Azure.WebSites | - abfa0a7c-a6b6-4736-8310-5855508787cd para el entorno de nube pública de Azure - 6a02c803-dafd-4136-b4c3-5a6f318b4714 para el entorno en la nube de Azure Government |
Usuario de certificado |
El id. de la aplicación de la entidad de servicio o el valor del usuario asignado es el identificador del proveedor de recursos de App Service. Para obtener información sobre cómo autorizar permisos del almacén de claves para el proveedor de recursos de App Service mediante una directiva de acceso, consulte la documentación sobre cómo proporcionar acceso a claves, certificados y secretos de Key Vault con el control de acceso basado en rol de Azure.
Nota:
No elimine estos permisos de RBAC del almacén de claves. Si lo hace, App Service no podrá sincronizar la aplicación web con la versión más reciente del certificado del almacén de claves.
Importación de un certificado desde el almacén a la aplicación
En Azure Portal, en el menú de la izquierda, seleccione App Services><nombre-de-aplicación>.
En el menú de navegación de la aplicación, seleccione Certificados>Aportación de sus propios certificados (.pfx)>Agregar certificado.
En Origen, seleccione Importar desde Key Vault.
Seleccione Seleccionar certificado de Key Vault.
Para ayudarle a seleccionar el certificado, use la tabla siguiente:
Configuración Descripción Suscripción La suscripción asociada al almacén de claves. Key vault El almacén de claves que contiene el certificado que desea importar. Certificate En esta lista, seleccione un certificado PKCS12 que se encuentra en el almacén. Se enumeran todos los certificados PKCS12 del almacén con sus huellas digitales, pero no todos se admiten en App Service. Cuando haya terminado con las opciones, seleccione Seleccionar, Validar y Agregar.
Una vez que la operación se haya completado, verá el certificado en la lista de certificados propios aportados. Si se produce un error en la importación, indica que el certificado no cumple los requisitos para App Service.
Nota
Si actualiza el certificado en Key Vault con un nuevo certificado, App Service sincronizará automáticamente el certificado en un plazo de 24 horas.
Para ayudar a proteger un dominio personalizado mediante este certificado, aún necesita crear un enlace de certificado. Siga los pasos descritos en Protección de un nombre DNS personalizado con un enlace TLS/SSL en Azure App Service.
Carga de un certificado privado
Después de obtener un certificado del proveedor, prepare el certificado para App Service siguiendo los pasos descritos en esta sección.
Combinación de certificados intermedios
Si la entidad emisora de certificados ofrece varios certificados en la cadena de certificados, debe combinar los certificados siguiendo el mismo orden.
En un editor de texto, abra cada certificado recibido.
Para almacenar el certificado combinado, cree un archivo denominado mergedcertificate.crt.
Copie el contenido de cada certificado en este archivo. Asegúrese de seguir la secuencia especificada por la cadena de certificados, empezando por su certificado y finalizando con el certificado raíz. Por ejemplo:
-----BEGIN CERTIFICATE----- <your entire Base64 encoded SSL certificate> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded intermediate certificate 1> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded intermediate certificate 2> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded root certificate> -----END CERTIFICATE-----
Exportación de un certificado privado combinado a PFX
Ahora, exporte el certificado TLS/SSL combinado con la clave privada que se usó para generar la solicitud de certificado. Si la solicitud de certificado se genera mediante OpenSSL, se creará un archivo de clave privada.
Nota:
OpenSSL v3 ha cambiado el cifrado predeterminado de 3DES a AES256, pero esto se puede invalidar en la línea de comandos -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1. OpenSSL v1 usa 3DES como valor predeterminado, por lo que los archivos PFX generados se admiten sin necesidad de realizar modificaciones especiales.
Para exportar el certificado a un archivo PFX, ejecute el siguiente comando, pero reemplace los marcadores de posición <private-key-file> y <merged-certificate-file> por las rutas de acceso a su clave privada y al archivo de certificado combinado.
openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>
Cuando se le solicite, especifique una contraseña para la operación de exportación. Al cargar el certificado TLS/SSL en App Service más adelante, tendrá que proporcionar esta contraseña.
Si usó IIS o Certreq.exe para generar la solicitud de certificado, instale el certificado en la máquina local y luego expórtelo a un archivo PFX.
Carga del certificado en App Service
Ya está listo para cargar el certificado en App Service.
En Azure Portal, en el menú de la izquierda, seleccione App Services><nombre-de-aplicación>.
En el menú de navegación de la aplicación, seleccione Certificados>Aportación de sus propios certificados (.pfx)>Cargar certificado.
Para ayudarle a cargar el certificado .pfx, use la tabla siguiente:
Configuración Descripción Archivo de certificado PFX Seleccione el archivo .pfx. Contraseña del certificado Escriba la contraseña que creó al exportar el archivo PFX. Nombre descriptivo del certificado Nombre del certificado que se mostrará en la aplicación web. Cuando haya terminado con las opciones, seleccione Seleccionar, Validar y Agregar.
Una vez que la operación se haya completado, verá el certificado en la lista de certificados propios aportados.
Para proporcionar seguridad para un dominio personalizado mediante este certificado, aún necesita crear un enlace de certificado. Siga los pasos descritos en Protección de un nombre DNS personalizado con un enlace TLS/SSL en Azure App Service.
Carga de un certificado público
Se admiten certificados públicos en el formato .cer.
Nota:
Después de cargar un certificado público en una aplicación, solo puede acceder a él la aplicación en la que se ha cargado. Los certificados públicos deben cargarse en cada aplicación web individual que necesite acceso. Para ver escenarios específicos de App Service Environment, consulte la documentación de certificados y App Service Environment.
Puede cargar hasta 1000 certificados públicos por plan de App Service.
En Azure Portal, en el menú de la izquierda, seleccione App Services><nombre-de-aplicación>.
En el menú de navegación de la aplicación, seleccione Certificados>Certificados de clave pública (.cer)>Agregar certificado.
Para ayudarle a cargar el certificado .cer, use la tabla siguiente:
Configuración Descripción Archivo de certificado CER Seleccione su archivo .cer. Nombre descriptivo del certificado Nombre del certificado que se mostrará en la aplicación web. Cuando finalice, seleccione Agregar.
Después de cargar el certificado, copie la huella digital del certificado y consulte Que el certificado sea accesible.
Renovación de un certificado que va a expirar
Antes de que expire un certificado, asegúrese de agregar el certificado renovado a App Service y actualice cualquier enlace de certificado en el que el proceso dependa del tipo de certificado. Por ejemplo, un certificado importado de Key Vault, incluido un certificado de App Service, se sincroniza automáticamente con App Service cada 24 horas y actualiza el enlace TLS/SSL cuando se renueva el certificado. Para un certificado cargado, no hay ninguna actualización de enlace automática. En función del escenario, revise la sección correspondiente:
- Renovación de un certificado cargado
- Renovación de un certificado de App Service
- Renovación de un certificado importado desde Key Vault
Renovación de un certificado cargado
Al reemplazar un certificado que va a expirar, la forma de actualizar el enlace del certificado con el nuevo certificado podría afectar negativamente a la experiencia del usuario. Por ejemplo, su dirección IP de entrada podría cambiar cuando elimine un enlace, incluso si este está basado en IP. Esto es especialmente importante al renovar un certificado que ya está incluido en un enlace basado en IP. Para evitar modificaciones en la dirección IP de la aplicación y el tiempo de inactividad de la aplicación debido a errores HTTPS, siga estos pasos en el orden especificado:
Vaya a la página Dominios personalizados de la aplicación, seleccione el botón ... y, luego, seleccione Actualizar enlace.
Seleccione el nuevo certificado y, luego, Actualizar.
Elimine el certificado existente.
Renovación de un certificado importado desde Key Vault
Nota
Para renovar un certificado de App Service, consulte Renovación de un certificado de App Service.
Para renovar un certificado que importó en App Service desde Key Vault, consulte Renovación de los certificados de Azure Key Vault.
Después de renovar el certificado en el almacén de claves, App Service sincronizará automáticamente el nuevo certificado y actualizará cualquier enlace de certificado aplicable en un plazo de 24 horas. Para llevar a cabo la sincronización manual, siga estos pasos:
Vaya a la página Certificado de la aplicación.
En Aportación de sus propios certificados (.pfx), seleccione el botón ... para el certificado de Key Vault importado y, luego, Sincronizar.
Preguntas más frecuentes
¿Cómo puedo automatizar la adición de un certificado aportado propio a una aplicación?
- CLI de Azure: enlace de un certificado TLS/SSL personalizado a una aplicación web
- Azure PowerShell: enlace de un certificado TLS/SSL personalizado a una aplicación web mediante PowerShell
¿Puedo usar un certificado de CA (entidad de certificación) privado para TLS entrante en mi aplicación?
Puede usar un certificado de entidad de certificación privada para TLS entrante en App Service Environment versión 3. Esto no es posible en App Service (multiinquilino). Para obtener más información sobre App Service multiinquilino frente a un solo inquilino, consulte Comparación multiinquilino público de App Service Environment v3 y App Service.
¿Puedo realizar llamadas salientes mediante un certificado de cliente de entidad de certificación privada desde mi aplicación?
Esto solo se admite para las aplicaciones de contenedor de Windows en App Service multiinquilino. Además, puede realizar llamadas salientes mediante un certificado de cliente de entidad de certificación privada con aplicaciones basadas en código y basadas en contenedores en App Service Environment versión 3. Para obtener más información sobre App Service multiinquilino frente a un solo inquilino, consulte Comparación multiinquilino público de App Service Environment v3 y App Service.
¿Puedo cargar un certificado de entidad de certificación privada en mi almacén raíz de confianza de App Service?
Puede cargar su propio certificado de entidad de certificación en el almacén raíz de confianza en App Service Environment versión 3. No se puede modificar la lista de certificados raíz de confianza en App Service (multiinquilino). Para obtener más información sobre App Service multiinquilino frente a un solo inquilino, consulte Comparación multiinquilino público de App Service Environment v3 y App Service.
¿Se puede usar App Service Certificate para otros servicios?
Sí, los certificados adquiridos a través de App Service Certificate se pueden exportar y usar con Application Gateway u otros servicios. Consulte el siguiente artículo de blog para obtener más información: Creación de una copia PFX local de App Service Certificate.