Configuración de versiones de directivas TLS y conjuntos de cifrado en Application Gateway

Aprenda a configurar las versiones de directivas TLS/SSL y los conjuntos de cifrado en Application Gateway. Puede seleccionar una lista de directivas predefinidas que contengan distintas configuraciones de versiones de directivas TLS y conjuntos de cifrado habilitados. También tiene la capacidad de definir una directiva TLS personalizada en función de sus requisitos.

Importante

Se recomienda usar TLS 1.2 como versión mínima del protocolo TLS para mejorar la seguridad en Application Gateway. A partir del 31 de agosto de 2025, todos los clientes y servidores back-end que interactúan con Azure Application Gateway deben usar la seguridad de la capa de transporte (TLS) 1.2 o superior, ya que la compatibilidad con TLS 1.0 y 1.1 se interrumpirá.

Nota:

Se recomienda usar el módulo de PowerShell de Azure Az para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para obtener información sobre cómo migrar al módulo Az PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Obtención de las opciones de TLS disponibles

El Get-AzApplicationGatewayAvailableSslOptions cmdlet proporciona una lista de directivas predefinidas disponibles, conjuntos de cifrado disponibles y versiones de protocolo que se pueden configurar. En el ejemplo siguiente se muestra una salida de ejemplo de la ejecución del cmdlet .

Importante

Las pasarelas creadas con la versión API 2023-02-01 o posterior utilizan AppGwSslPolicy202220101 como política TLS predeterminada. El DefaultPolicy valor en la siguiente salida sigue informando de AppGwSslPolicy20150501 porque el soporte de Azure PowerShell y CLI de Azure para el predeterminado actualizado aún no está disponible. Para confirmar el valor por defecto en efecto para tu gateway, comprueba la propiedad de solo defaultPredefinedSslPolicy lectura en el recurso. Para más información, consulte resumen de la política de TLS.

DefaultPolicy: AppGwSslPolicy20150501
PredefinedPolicies:
    /subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20150501
    /subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20170401
    /subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20170401S
    /subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20220101
    /subscriptions/xxx-xxx/resourceGroups//providers/Microsoft.Network/ApplicationGatewayAvailableSslOptions/default/Applic
ationGatewaySslPredefinedPolicy/AppGwSslPolicy20220101S

AvailableCipherSuites:
    TLS_AES_128_GCM_SHA256
    TLS_AES_256_GCM_SHA384
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
    TLS_DHE_RSA_WITH_AES_256_CBC_SHA
    TLS_DHE_RSA_WITH_AES_128_CBC_SHA
    TLS_RSA_WITH_AES_256_GCM_SHA384
    TLS_RSA_WITH_AES_128_GCM_SHA256
    TLS_RSA_WITH_AES_256_CBC_SHA256
    TLS_RSA_WITH_AES_128_CBC_SHA256
    TLS_RSA_WITH_AES_256_CBC_SHA
    TLS_RSA_WITH_AES_128_CBC_SHA
    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
    TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
    TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
    TLS_DHE_DSS_WITH_AES_256_CBC_SHA
    TLS_DHE_DSS_WITH_AES_128_CBC_SHA
    TLS_RSA_WITH_3DES_EDE_CBC_SHA
    TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA

AvailableProtocols:
    TLSv1_0
    TLSv1_1
    TLSv1_2
    TLSv1_3

Enumeración de directivas TLS predefinidas

Application Gateway viene con múltiples políticas predefinidas que puedes utilizar. El Get-AzApplicationGatewaySslPredefinedPolicy cmdlet recupera estas directivas. Cada directiva tiene diferentes versiones de protocolo y conjuntos de cifrado habilitados. Utiliza estas políticas predefinidas para configurar rápidamente una política TLS en tu pasarela de aplicaciones. La política predeterminada aplicada cuando no defines una política TLS específica depende de la versión de la API utilizada para crear la pasarela: las pasarelas creadas con la versión 2023-02-01 o posterior se aplican por defecto a AppGwSslPolicy202220101, mientras que las pasarelas creadas con versiones anteriores de la API se usan por defecto a AppGwSslPolicy20150501. Como el soporte para TLS 1.0 y 1.1 terminó el 31 de agosto de 2025, utiliza una política predefinida de 2022 (AppGwSslPolicy20220101 o AppGwSslPolicy20220101S) o una política CustomV2 para que los clientes y servidores backend negocien TLS 1.2 o superior. Si necesitas un conjunto específico de suites de cifrado, puedes usar AppGwSslPolicy20170401S en su lugar. Las políticas predefinidas de 2022 y la política CustomV2 están disponibles solo en el SKU v2 (Standard_v2 o WAF_v2).

La siguiente salida es un ejemplo de ejecución de Get-AzApplicationGatewaySslPredefinedPolicy.

Name: AppGwSslPolicy20150501
MinProtocolVersion: TLSv1_0
CipherSuites:
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
    TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
    TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
    TLS_DHE_RSA_WITH_AES_256_CBC_SHA
    TLS_DHE_RSA_WITH_AES_128_CBC_SHA
    TLS_RSA_WITH_AES_256_GCM_SHA384
 ...
Name: AppGwSslPolicy20170401
MinProtocolVersion: TLSv1_1
CipherSuites:
    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
    TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
    TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
...

Configuración de una directiva TLS personalizada

Cuando configures una política TLS personalizada, proporciona los siguientes parámetros: PolicyType, MinProtocolVersion, CipherSuite, y ApplicationGateway. Si intentas proporcionar otros parámetros, obtienes un error al crear o actualizar la Pasarela de Aplicaciones. En el ejemplo siguiente se establece una directiva TLS personalizada en una puerta de enlace de aplicaciones. Establece la versión TLSv1_2 mínima del protocolo en y habilita los siguientes conjuntos de cifrado:

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
# get an application gateway resource
$gw = Get-AzApplicationGateway -Name AdatumAppGateway -ResourceGroup AdatumAppGatewayRG

# set the TLS policy on the application gateway
Set-AzApplicationGatewaySslPolicy -ApplicationGateway $gw -PolicyType Custom -MinProtocolVersion TLSv1_2 -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"

# validate the TLS policy locally
Get-AzApplicationGatewaySslPolicy -ApplicationGateway $gw

# update the gateway with validated TLS policy
Set-AzApplicationGateway -ApplicationGateway $gw

Importante

Las suites TLS_AES_128_GCM_SHA256 de cifrado y TLS_AES_256_GCM_SHA384 con TLSv1.3 no son personalizables y se incluyen por defecto al establecer una política CustomV2 con una versión mínima TLS 1.2 o 1.3. Estas dos suites de cifrado no aparecen en la salida de Obtener Detalles, con la excepción de Portal.

Para establecer la versión mínima del protocolo en 1.3, debe usar el siguiente comando:

Set-AzApplicationGatewaySslPolicy -ApplicationGateway $AppGW -MinProtocolVersion TLSv1_3 -PolicyType CustomV2 -CipherSuite @()

En esta ilustración se explica aún más el uso de la directiva customV2 con versiones mínimas de protocolo 1.2 y 1.3.

Diagrama que muestra el uso del parámetro ciphersuite para la directiva CustomV2.

Creación de una puerta de enlace de aplicaciones con una directiva TLS predefinida

Al configurar una directiva TLS predefinida, se pasan los parámetros siguientes: PolicyType, PolicyName y ApplicationGateway. Si intenta pasar otros parámetros, obtendrá un error al crear o actualizar Application Gateway.

En el ejemplo siguiente se crea una nueva puerta de enlace de aplicaciones con una directiva TLS predefinida.

# Create a resource group
$rg = New-AzResourceGroup -Name ContosoRG -Location "East US"

# Create a subnet for the application gateway
$subnet = New-AzVirtualNetworkSubnetConfig -Name subnet01 -AddressPrefix 10.0.0.0/24

# Create a virtual network with a 10.0.0.0/16 address space
$vnet = New-AzVirtualNetwork -Name appgwvnet -ResourceGroupName $rg.ResourceGroupName -Location "East US" -AddressPrefix 10.0.0.0/16 -Subnet $subnet

# Retrieve the subnet object for later use
$subnet = $vnet.Subnets[0]

# Create a public IP address (v2 requires a Standard SKU, static public IP address)
$publicip = New-AzPublicIpAddress -ResourceGroupName $rg.ResourceGroupName -name publicIP01 -location "East US" -AllocationMethod Static -Sku Standard

# Create an ip configuration object
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name gatewayIP01 -Subnet $subnet

# Create a backend pool for backend web servers
$pool = New-AzApplicationGatewayBackendAddressPool -Name pool01 -BackendIPAddresses 134.170.185.46, 134.170.188.221,134.170.185.50

# Define the backend http settings to be used.
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name poolsetting01 -Port 80 -Protocol Http -CookieBasedAffinity Enabled

# Create a new port for TLS
$fp = New-AzApplicationGatewayFrontendPort -Name frontendport01  -Port 443

# Upload an existing pfx certificate for TLS offload
$password = ConvertTo-SecureString -String "P@ssw0rd" -AsPlainText -Force
$cert = New-AzApplicationGatewaySslCertificate -Name cert01 -CertificateFile C:\folder\contoso.pfx -Password $password

# Create a frontend IP configuration for the public IP address
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name fipconfig01 -PublicIPAddress $publicip

# Create a new listener with the certificate, port, and frontend ip.
$listener = New-AzApplicationGatewayHttpListener -Name listener01  -Protocol Https -FrontendIPConfiguration $fipconfig -FrontendPort $fp -SslCertificate $cert

# Create a new rule for backend traffic routing (rule priority is required)
$rule = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool -Priority 100

# Define the size of the application gateway
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2 -Capacity 2

# Configure the TLS policy to use a different predefined policy
$policy = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName AppGwSslPolicy20220101S

# Create the application gateway.
$appgw = New-AzApplicationGateway -Name appgwtest -ResourceGroupName $rg.ResourceGroupName -Location "East US" -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig  -GatewayIpConfigurations $gipconfig -FrontendPorts $fp -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku -SslCertificates $cert -SslPolicy $policy

Actualización de una puerta de enlace de aplicaciones existente con una directiva TLS predefinida

Para establecer una directiva TLS personalizada, pase los parámetros siguientes: PolicyType, MinProtocolVersion, CipherSuite y ApplicationGateway. Para establecer una directiva TLS predefinida, pase los parámetros siguientes: PolicyType, PolicyName y ApplicationGateway. Si intenta pasar otros parámetros, obtendrá un error al crear o actualizar Application Gateway.

Nota:

Tanto las políticas SSL heredadas como las nuevas (predefinidas de 2022 o CustomV2) no pueden coexistir en la misma pasarela. Si algún cliente requiere cifrados que solo ofrecen las políticas heredadas, utiliza una política predefinida o personalizada heredada a través de la pasarela. Como el soporte para TLS 1.0 y 1.1 terminó el 31 de agosto de 2025, las políticas heredadas ya no negocian esas versiones: las políticas predefinidas 20150501 y 20170401 fueron descontinuadas, y la política Custom heredada solo soporta TLS 1.2. Para más detalles, consulte la visión general de la política de TLS.

En el ejemplo siguiente, hay ejemplos de código para la directiva personalizada y la directiva predefinida. Descomente la política que desea usar.

# You have to change these parameters to match your environment.
$AppGWname = "YourAppGwName"
$RG = "YourResourceGroupName"

$AppGw = get-Azapplicationgateway -Name $AppGWname -ResourceGroupName $RG

# Choose either custom policy or predefined policy and uncomment the one you want to use.

# TLS Custom Policy
# Set-AzApplicationGatewaySslPolicy -PolicyType Custom -MinProtocolVersion TLSv1_2 -CipherSuite "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "TLS_RSA_WITH_AES_128_CBC_SHA256" -ApplicationGateway $AppGw

# TLS Predefined Policy
# Set-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20220101S" -ApplicationGateway $AppGW

# Update AppGW
# The TLS policy options are not validated or updated on the Application Gateway until this cmdlet is executed.
$SetGW = Set-AzApplicationGateway -ApplicationGateway $AppGW

Pasos siguientes

Visite Introducción a la redirección de Application Gateway para obtener información sobre cómo redirigir el tráfico HTTP a un punto de conexión HTTPS.

Consulte cómo configurar directivas específicas de SSL del agente de escucha en configurar directiva específica de SSL del agente de escucha a través del portal.