Configurar versões da política TLS e conjuntos de criptografia no Gateway de Aplicativo

Saiba como configurar versões da política TLS/SSL e conjuntos de criptografia no Gateway de Aplicativo. Escolha uma política em uma lista de políticas predefinidas que contêm diferentes configurações de versões da política TLS e pacotes de criptografia habilitados. Você também tem a capacidade de definir uma política TLS personalizada de acordo com suas necessidades.

Importante

Recomendamos usar o TLS 1.2 como a versão mínima do protocolo TLS para garantir uma melhor segurança no Gateway de Aplicativo. A partir de 31 de agosto de 2025, todos os clientes e servidores de back-end que interagem com o Gateway de Aplicativo do Azure devem usar o protocolo TLS (TLS) 1.2 ou superior, pois o suporte para TLS 1.0 e 1.1 será descontinuado.

Observação

Recomendamos que você use o módulo do Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Obter as opções do TLS disponíveis

O Get-AzApplicationGatewayAvailableSslOptions cmdlet fornece uma listagem de políticas predefinidas disponíveis, conjuntos de criptografia disponíveis e versões de protocolo que podem ser configuradas. O exemplo a seguir mostra um exemplo de saída da execução do cmdlet.

Importante

Gateways criados com a versão API 2023-02-01 ou posterior usam AppGwSslPolicy202220101 como política padrão do TLS. O DefaultPolicy valor na saída a seguir ainda informa AppGwSslPolicy20150501 porque o suporte ao Azure PowerShell e ao CLI do Azure para o padrão atualizado ainda não está disponível. Para confirmar o padrão em vigor para seu gateway, verifique a propriedade de somente defaultPredefinedSslPolicy leitura no recurso. Para mais informações, veja a visão geral da política 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

Listar políticas de TLS predefinidas

O Application Gateway vem com múltiplas políticas pré-definidas que você pode usar. O cmdlet Get-AzApplicationGatewaySslPredefinedPolicy recupera essas políticas. Cada política tem versões de protocolo diferentes e conjuntos de codificação habilitados. Use essas políticas pré-definidas para configurar rapidamente uma política TLS no seu gateway de aplicação. A política padrão aplicada quando você não define uma política TLS específica depende da versão da API usada para criar o gateway: gateways criados com a versão da API 2023-02-01 ou posterior têm como padrão o AppGwSslPolicy20220101, enquanto gateways criados com versões anteriores da API têm como padrão o AppGwSslPolicy20150501. Como o suporte para TLS 1.0 e 1.1 terminou em 31 de agosto de 2025, use uma política pré-definida de 2022 (AppGwSslPolicy20220101 ou AppGwSslPolicy20220101S) ou uma política CustomV2 para que clientes e servidores backend negociem TLS 1.2 ou superior. Se você precisar de um conjunto específico de suítes de cifras, pode usar AppGwSslPolicy20170401S em vez disso. As políticas predefinidas de 2022 e a política CustomV2 estão disponíveis apenas no SKU v2 (Standard_v2 ou WAF_v2).

A saída a seguir é um exemplo da execução 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
...

Configurar uma política TLS personalizada

Ao configurar uma política TLS personalizada, forneça os seguintes parâmetros: PolicyType, MinProtocolVersion, CipherSuite, e ApplicationGateway. Se você tentar fornecer outros parâmetros, recebe um erro ao criar ou atualizar o Gateway de Aplicação. O exemplo a seguir define uma política TLS personalizada em um gateway de aplicativo. Define a versão mínima do protocolo TLSv1_2 e permite que os seguintes conjuntos de codificação:

  • 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

Suites TLS_AES_128_GCM_SHA256 de cifras e TLS_AES_256_GCM_SHA384 com TLSv1.3 não são personalizáveis e estão incluídas por padrão ao definir uma política CustomV2 com uma versão mínima TLS 1.2 ou 1.3. Essas duas suítes de cifras não aparecem na saída Get Details, com exceção do Portal.

Para definir a versão mínima do protocolo como 1.3, você deve usar o seguinte comando:

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

Esta ilustração explica ainda mais o uso da política CustomV2 com as versões mínimas de protocolo 1.2 e 1.3.

Diagrama que mostra o uso do parâmetro ciphersuite para a política do CustomV2.

Criar um gateway de aplicativo com uma política TLS predefinida

Ao configurar uma política TLS predefinida, transmita os seguintes parâmetros: PolicyType, PolicyName e ApplicationGateway. Se tentar passar outros parâmetros, você receberá um erro ao criar ou atualizar o Gateway de Aplicativo.

O exemplo a seguir cria um novo gateway de aplicativo com uma política 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

Atualizar um gateway de aplicativo existente com uma política TLS predefinida

Para definir uma política TLS personalizada, transmita os seguintes parâmetros: PolicyType, MinProtocolVersion, CipherSuite e ApplicationGateway. Para definir uma política TLS predefinida, transmita os seguintes parâmetros: PolicyType, PolicyName e ApplicationGateway. Se tentar passar outros parâmetros, você receberá um erro ao criar ou atualizar o Gateway de Aplicativo.

Observação

Tanto políticas SSL legadas quanto novas (Predefinidas de 2022 ou CustomV2) não podem coexistir no mesmo gateway. Se algum cliente exigir cifras que apenas as políticas legadas oferecem, use uma política pré-definida ou personalizada legada em todo o gateway. Como o suporte ao TLS 1.0 e 1.1 terminou em 31 de agosto de 2025, as políticas legadas não negociam mais essas versões: as políticas pré-definidas 20150501 e 20170401 foram descontinuadas, e a política Custom legada suporta apenas TLS 1.2. Para detalhes, veja a visão geral da política do TLS.

No exemplo a seguir, há exemplos de código para a política personalizada e para a política predefinida. Remova a marca de comentário da política que deseja 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

Próximas etapas

Visite Visão geral de redirecionamento do Gateway de Aplicativo para aprender a redirecionar o tráfego HTTP para um ponto de extremidade HTTPS.

Confira a configuração de políticas SSL específicas do ouvinte em Como configurar uma política SSL específica do ouvinte por meio do portal