Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se muestra cómo proporcionar seguridad para el dominio personalizado en la aplicación o la aplicación de funciones de Azure App Service mediante la creación de un enlace de certificado. Cuando haya terminado, puede acceder a la aplicación de App Service en el punto de conexión de https://
para el nombre del sistema de nombres de dominio (DNS) personalizado. Un ejemplo es https://www.contoso.com
.
Requisitos previos
- Escale verticalmente la aplicación de App Service a uno de los planes de tarifa admitidos: Básico, Estándar o Premium.
- Asignar un nombre de dominio a su aplicación o comprarla y configurarla en Azure.
Adición del enlace
En el Portal de Azure:
En el panel izquierdo, seleccione App Services><).
En el panel izquierdo de la aplicación, seleccione Dominios personalizados.
Junto al dominio personalizado, seleccione Agregar enlace.
Si la aplicación ya tiene un certificado para el dominio personalizado seleccionado, puede seleccionarlo en Certificado. Si no es así, debe agregar un certificado mediante una de las selecciones en Origen:
- Creación de un certificado administrado de App Service: permita que App Service cree un certificado administrado para el dominio seleccionado. Esta opción es la más sencilla. Para obtener más información, consulte Creación de un certificado administrado gratuito.
- Importar certificado de App Service: en App Service Certificate, seleccione el certificado de App Service que compró para el dominio seleccionado.
- Cargar certificado (.pfx): siga el flujo de trabajo en Cargar un certificado privado para cargar un certificado de archivo de Intercambio de información personal (PFX) desde el equipo local y especificar la contraseña del certificado.
- Importar desde Key Vault: elija Seleccionar certificado del almacén de claves y seleccione el certificado en el cuadro de diálogo.
En TIPO TLS/SSL, seleccione SSL SNI o SSL basado en IP:
- SNI SSL: Puede agregar múltiples vinculaciones SSL de Indicador de Nombre de Servidor (SNI). Esta opción permite que varios certificados de seguridad de la capa de transporte (TLS)/SSL ayuden a proteger varios dominios en la misma dirección IP. La mayoría de los exploradores modernos (incluidos Microsoft Edge, Chrome, Firefox y Opera) admiten SNI. (Para más información, consulte Indicación de nombre de servidor).
- SSL basado en IP: solo puede agregar un enlace SSL IP. Esta opción solo permite que un único certificado TLS/SSL proteja una dirección IP pública dedicada. Tras configurar el enlace, siga los pasos descritos en Reasignación de registros para SSL basado en IP. SSL basado en IP solo se admite en el nivel Estándar o superior.
Al agregar un nuevo certificado, seleccione Validar para validar el nuevo certificado.
Seleccione Agregar.
Una vez completada la operación, el estado TLS/SSL del dominio personalizado se cambia a Protegido.
Un estado protegido en dominios personalizados significa que un certificado proporciona seguridad. App Service no comprueba si el certificado está autofirmado o ha expirado, lo que también puede hacer que los exploradores muestren un error o una advertencia.
Reasignación de registros para SSL basado en IP
Este paso solo es necesario para SSL basado en IP. Para un enlace SSL SNI, vaya a Probar HTTPS.
Hay potencialmente dos cambios que debe realizar:
De manera predeterminada, la aplicación usa una dirección IP pública compartida. Cuando se enlaza un certificado con SSL de IP, App Service crea una dirección IP dedicada nueva para la aplicación. Si asignó un registro D a la aplicación, actualice el registro de dominio con esta nueva dirección IP dedicada.
La página Dominio personalizado de la aplicación se actualiza con la nueva dirección IP dedicada. Copie esta dirección IP y, a continuación, vuelva a asignar el registro A a esta nueva dirección IP.
Si tiene un enlace SNI SSL para
<app-name>.azurewebsites.net
, reasigne la asignación CNAME para que apunte asni.<app-name>.azurewebsites.net
en su lugar. (Agregue el prefijosni
).
Probar HTTPS
Vaya a https://<your.custom.___domain>
en varios exploradores para comprobar que aparece la aplicación.
El código de la aplicación puede inspeccionar el protocolo mediante el encabezado x-appservice-proto
. El encabezado tiene un valor de http
o https
.
Si la aplicación genera errores de validación del certificado, probablemente esté utilizando un certificado autofirmado. Si ese no es el caso, es probable que haya omitido los certificados intermedios al exportar su certificado al archivo .pfx.
Preguntas más frecuentes
¿Cómo asegurarse de que la dirección IP de la aplicación no cambia al realizar cambios en el enlace de certificado?
La dirección IP de entrada puede cambiar al eliminar un enlace, incluso si este es un enlace SSL de IP. Este comportamiento es especialmente importante cuando se renueva un certificado que ya está en un enlace SSL de IP. Para evitar un cambio en la dirección IP de la aplicación, siga estos pasos:
- Carga el nuevo certificado.
- Enlace el nuevo certificado al dominio personalizado que desea sin eliminar el antiguo. Esta acción reemplaza el enlace en lugar de quitar el antiguo.
- Elimine el antiguo certificado.
¿Puedo deshabilitar la redirección forzada de HTTP a HTTPS?
De manera predeterminada, App Service fuerza una redirección de solicitudes HTTP a HTTPS. Para deshabilitar este comportamiento, consulte Configuración general.
¿Cómo puedo cambiar las versiones mínimas de TLS para la aplicación?
La aplicación permite TLS 1.2 de forma predeterminada. Los estándares del sector, como PCI DSS , recomiendan este nivel de TLS. Para aplicar diferentes versiones de TLS, consulte Configuración general.
¿Cómo controlar la terminación TLS en App Service?
En App Service, la terminación TLS tiene lugar en los equilibradores de carga de red, por lo que todas las solicitudes HTTPS llegan a la aplicación en forma de solicitudes HTTP sin cifrar. Si la aplicación lógica necesita comprobar si las solicitudes de usuario están cifradas, inspeccione el encabezado X-Forwarded-Proto
.
Guías de configuración específicas del lenguaje, como la guía Configuración de Node.js en Linux, que muestra cómo detectar una sesión HTTPS en el código de la aplicación.
Automatizar con scripts
CLI de Azure
Enlace de un certificado TLS/SSL personalizado a una aplicación web
PowerShell
$fqdn="<Replace with your custom ___domain name>"
$pfxPath="<Replace with path to your .PFX file>"
$pfxPassword="<Replace with your .PFX password>"
$webappname="mywebapp$(Get-Random)"
$___location="West Europe"
# Create a resource group.
New-AzResourceGroup -Name $webappname -Location $___location
# Create an App Service plan in Free tier.
New-AzAppServicePlan -Name $webappname -Location $___location `
-ResourceGroupName $webappname -Tier Free
# Create a web app.
$webapp = New-AzWebApp -Name $webappname -Location $___location -AppServicePlan $webappname `
-ResourceGroupName $webappname
Write-Host "Sign in to your ___domain provider's website and configure the following records:"
Write-Host "A CNAME record that maps $fqdn to $webappname.azurewebsites.net"
Write-Host "A TXT record that maps asuid.$fqdn to the ___domain verification ID $($webapp.CustomDomainVerificationId)"
Read-Host "Press [Enter] key when ready ..."
# Before continuing, go to your DNS configuration UI for your custom ___domain and follow the
# instructions at https://aka.ms/appservicecustomdns to configure a CNAME record for the
# hostname "www" and point it your web app's default ___domain name.
# Upgrade App Service plan to Basic tier (minimum required by custom SSL certificates)
Set-AzAppServicePlan -Name $webappname -ResourceGroupName $webappname `
-Tier Basic
# Add a custom ___domain name to the web app.
Set-AzWebApp -Name $webappname -ResourceGroupName $webappname `
-HostNames @($fqdn,"$webappname.azurewebsites.net")
# Upload and bind the SSL certificate to the web app.
New-AzWebAppSSLBinding -WebAppName $webappname -ResourceGroupName $webappname -Name $fqdn `
-CertificateFilePath $pfxPath -CertificatePassword $pfxPassword -SslState SniEnabled