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.
Se aplica a: ✔️ Front Door (clásico)
Important
- A partir del 15 de agosto de 2025, Azure Front Door (clásico) ya no admitirá la incorporación de nuevos dominios. Migre a AFD Standard y Premium para crear nuevos dominios o perfiles y evitar interrupciones del servicio. Aprende más
- A partir del 15 de agosto de 2025, Azure Front Door (clásico) ya no admitirá certificados administrados. Para evitar interrupciones del servicio, cambie a Bring Your Own Certificate (BYOC) o migre a AFD Standard y Premium antes del 15 de agosto de 2025. Los certificados administrados existentes se renovarán automáticamente antes del 15 de agosto de 2025 y permanecerán válidos hasta el 14 de abril de 2026. Aprende más
- Azure Front Door (clásico) se retirará el 31 de marzo de 2027. Para evitar interrupciones del servicio, migre a AFD Standard o Premium. Más información.
En este script de ejemplo de la CLI de Azure se muestra cómo implementar un nombre de dominio personalizado y un certificado TLS en un front-end de Azure Front Door. Este script automatiza el aprovisionamiento de Azure Front Door con un nombre de dominio personalizado (hospedado por Azure DNS) y un certificado TLS.
Important
Asegúrese de que ya exista una zona pública de Azure DNS para el nombre de dominio. Consulte el tutorial Hospedaje del dominio en Azure DNS.
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
Prerequisites
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Introducción a Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para obtener más información, consulte Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Autenticación en Azure mediante la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Script de ejemplo
Inicio de Azure Cloud Shell
Azure Cloud Shell es un shell interactivo gratuito que puede usar para ejecutar los pasos de este artículo. Tiene las herramientas comunes de Azure preinstaladas y configuradas para usarlas en la cuenta.
Para abrir Cloud Shell, seleccione Pruébelo en la esquina superior derecha de un bloque de código. También puede ir a https://shell.azure.com para iniciar Cloud Shell en una pestaña independiente del explorador.
Cuando se abra Cloud Shell, compruebe que Bash está seleccionado para el entorno. En las sesiones siguientes se usará la CLI de Azure en un entorno de Bash. Seleccione Copiar para copiar los bloques de código, péguelos en Cloud Shell y, luego, presione ENTRAR para ejecutarlos.
Inicio de sesión en Azure
Cloud Shell se autentica de forma automática en la cuenta inicial con la que ha iniciado sesión. Use el siguiente script para iniciar sesión con otra suscripción y reemplace subscriptionId por el identificador de suscripción de Azure.
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
subscription="subscriptionId" # Set Azure subscription ID here
az account set -s $subscription # ...or use 'az login'
Para más información, vea establecer la suscripción activa o inicio de sesión de forma interactiva
Cómo empezar
Este script le permitirá hacer lo siguiente:
- Cree un grupo de recursos.
- Cree una cuenta de almacenamiento para hospedar una aplicación de página única (SPA).
- Habilite el hospedaje de aplicaciones de página única en la cuenta de almacenamiento.
- Cargue un archivo
index.html"¡Hola mundo!". - Cree un perfil de Front Door.
- Cree un alias de DNS para Apex que se resuelva en Front Door.
- Creer un registro CNAME para el nombre de host
adverify. - Cree un punto de conexión front-end de Front Door para el dominio personalizado.
- Agregue una ruta desde el front-end del dominio personalizado al origen de la SPA.
- Agregue una regla de enrutamiento para redirigir HTTP a HTTPS.
- Habilite HTTPS con un certificado administrado de Front Door.
Ejecute el script.
Para ejecutar este script, copie el siguiente código en un archivo .sh, cambie las variables codificadas de forma rígida por los valores del dominio y, después, ejecute el comando siguiente para pasar estas variables al script:
AZURE_DNS_ZONE_NAME=www.contoso.com AZURE_DNS_ZONE_RESOURCE_GROUP=contoso-rg ./deploy-custom-apex-domain.sh
# Deploy a Custom Domain name and TLS certificate at the apex (root) on an Azure Front Door front-end.
# VARIABLES
# Change these hardcoded values if required
let "randomIdentifier=$RANDOM*$RANDOM"
# Use resource group environment variable if set
if [ "$RESOURCE_GROUP" == '' ];
then
resourceGroup="msdocs-frontdoor-rg-$randomIdentifier"
else
resourceGroup="${RESOURCE_GROUP}"
fi
location='AustraliaEast'
tag='deploy-custom-domain'
storage="msdocsafd$randomIdentifier"
frontDoor="msdocs-frontdoor-$randomIdentifier"
frontDoorFrontEnd='www-contoso'
ttl=300
if [ "$AZURE_DNS_ZONE_NAME" == '' ];
then
echo -e "\033[33mAZURE_DNS_ZONE_NAME environment variable is not set. Front Door will be created but custom frontend will not be configured because custom domain name not provided. Try:\n\n AZURE_DNS_ZONE_NAME=www.contoso.com AZURE_DNS_ZONE_RESOURCE_GROUP=contoso-dns-rg ./deploy-custom-apex-domain.sh\n\nSee Readme for details.\033[0m"
else
if [ "$AZURE_DNS_ZONE_RESOURCE_GROUP" == '' ];
then
# write error text
echo -e "\033[31mAZURE_DNS_ZONE_RESOURCE_GROUP environment variable is not set. Provide the resource group for the Azure DNS Zone. Try:\n\n AZURE_DNS_ZONE_NAME=www.contoso.com AZURE_DNS_ZONE_RESOURCE_GROUP=contoso-dns-rg ./deploy-custom-apex-domain.sh\n\nSee Readme for details.\033[0m"
# write stderr and exit
>&2 echo "AZURE_DNS_ZONE_RESOURCE_GROUP environment variable is not set."
exit 1
fi
fi
# Resource group
az group create -n $resourceGroup -l $location --tags $tag
# STORAGE ACCOUNT
az storage account create -n $storage -g $resourceGroup -l $location --sku Standard_LRS --kind StorageV2
# Make Storage Account a SPA
az storage blob service-properties update --account-name $storage --static-website \
--index-document 'index.html' --404-document 'index.html'
# Upload index.html
az storage blob upload --account-name $storage -f ./index.html -c '$web' -n 'index.html' --content-type 'text/html'
# Get the URL to use as the origin URL on the Front Door backend
spaFQUrl=$( az storage account show -n $storage --query 'primaryEndpoints.web' -o tsv )
# Remove 'https://' and trailing '/'
spaUrl=${spaFQUrl/https:\/\//} ; spaUrl=${spaUrl/\//}
# FRONT DOOR
frontDoorId=$( az network front-door create -n $frontDoor -g $resourceGroup --tags $tag --accepted-protocols Http Https --backend-address $spaUrl --query 'id' -o tsv )
if [ "$AZURE_DNS_ZONE_NAME" != '' ];
then
# AZURE DNS
# Apex hostname on contoso.com
# Create an Alias DNS recordset
az network dns record-set a create -n "@" -g $AZURE_DNS_ZONE_RESOURCE_GROUP --zone-name $AZURE_DNS_ZONE_NAME --target-resource $frontDoorId --ttl $ttl
# Create the domain verify CNAME
az network dns record-set cname set-record -g $AZURE_DNS_ZONE_RESOURCE_GROUP --zone-name $AZURE_DNS_ZONE_NAME --record-set-name "afdverify" --cname "afdverify.$frontDoor.azurefd.net" --ttl $ttl
# FRONT DOOR FRONT END
# Create a frontend for the custom domain
az network front-door frontend-endpoint create --front-door-name $frontDoor --host-name $AZURE_DNS_ZONE_NAME \
--name $frontDoorFrontEnd -g $resourceGroup --session-affinity-enabled 'Disabled'
# Update the default routing rule to include the new frontend
az network front-door routing-rule update --front-door-name $frontDoor -n 'DefaultRoutingRule' -g $resourceGroup \
--caching 'Enabled' --accepted-protocols 'Https' \
--frontend-endpoints 'DefaultFrontendEndpoint' $frontDoorFrontEnd
# Create http redirect to https routing rule
az network front-door routing-rule create -f $frontDoor -g $resourceGroup -n 'httpRedirect' \
--frontend-endpoints $frontDoorFrontEnd --accepted-protocols 'Http' --route-type 'Redirect' \
--patterns '/*' --redirect-protocol 'HttpsOnly'
# Update the default routing rule to include the new frontend
az network front-door routing-rule update --front-door-name $frontDoor -n 'DefaultRoutingRule' -g $resourceGroup \
--caching 'Enabled' --frontend-endpoints 'DefaultFrontendEndpoint' $frontDoorFrontEnd
# Enable HTTPS. This command will return quickly but provisioning can take up to an hour to complete
az network front-door frontend-endpoint enable-https \
--front-door-name $frontDoor -n $frontDoorFrontEnd -g $resourceGroup
fi
Limpieza de recursos
Use el comando siguiente para quitar el grupo de recursos y todos los recursos asociados con él mediante el comando az group delete, a menos que tenga una necesidad constante de estos recursos. Algunos de estos recursos pueden tardar un tiempo en crearse, así como en eliminarse.
az group delete --name $resourceGroup
Referencia de ejemplo
Este script usa los siguientes comandos. Cada comando de la tabla crea un vínculo a documentación específica del comando.
| Command | Description |
|---|---|
| az group create (este comando se utiliza para crear un nuevo grupo en Azure) | Crea un grupo de recursos para almacenar todos los recursos. |
| az storage account create (crear cuenta de almacenamiento) | Crea una cuenta de Azure Storage en el grupo de recursos especificado. |
| az storage blob service-properties update - Actualiza las propiedades del servicio de blobs en Azure Storage. | Actualiza las propiedades del servicio Storage Blob. |
| az storage blob upload | Carga un blob en un contenedor. |
| Comando para mostrar la cuenta de almacenamiento: az storage account show | Muestra las propiedades de la cuenta de almacenamiento. |
| az network front-door create | Crea una instancia de Front Door. |
| az network dns record-set | Administra los registros DNS y los conjuntos de registros. |
| az network front-door | Administra las instancias de Front Door. |
Pasos siguientes
Para obtener más información sobre la CLI de Azure, vea la documentación de la CLI de Azure.