Sdílet prostřednictvím


Konfigurace verzí zásad TLS a šifrovacích sad ve službě Application Gateway

Zjistěte, jak nakonfigurovat verze zásad TLS/SSL a šifrovací sady ve službě Application Gateway. Můžete si vybrat ze seznamu předdefinovaných zásad, které obsahují různé konfigurace verzí zásad TLS a povolené šifrovací sady. Máte také možnost definovat vlastní zásady TLS na základě vašich požadavků.

Důležité

Pro lepší zabezpečení ve službě Application Gateway doporučujeme používat protokol TLS 1.2 jako minimální verzi protokolu TLS. Od 31. srpna 2025 musí všichni klienti a back-endové servery pracující se službou Aplikace Azure lication Gateway používat protokol TLS (Transport Layer Security) 1.2 nebo vyšší, protože podpora protokolu TLS 1.0 a 1.1 bude ukončena.

Poznámka:

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Získání dostupných možností protokolu TLS

Tato rutina Get-AzApplicationGatewayAvailableSslOptions poskytuje seznam dostupných předdefinovaných zásad, dostupných šifrovacích sad a verzí protokolů, které je možné konfigurovat. Následující příklad ukazuje výstup spuštění cmdletu.

Důležité

Výchozí zásada TLS je nastavená na AppGwSslPolicy20220101 pro verze rozhraní API 2023-02-01 nebo vyšší. Další informace najdete v přehledu zásad PROTOKOLU 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

Výpis předdefinovaných zásad TLS

Application Gateway obsahuje několik předdefinovaných zásad, které je možné použít. Cmdlet Get-AzApplicationGatewaySslPredefinedPolicy získává tyto zásady. Každá politika má povolené různé verze protokolů a šifrovací sady. Tyto předdefinované zásady je možné použít k rychlé konfiguraci zásad PROTOKOLU TLS ve službě Application Gateway. Ve výchozím nastavení je vybrána možnost AppGwSslPolicy20150501 , pokud nejsou definovány žádné konkrétní zásady TLS.

Následující výstup je příkladem spuštění 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
...

Konfigurace vlastních zásad TLS

Při konfiguraci vlastní zásady TLS předáte následující parametry: PolicyType, MinProtocolVersion, CipherSuite a ApplicationGateway. Pokud se pokusíte předat další parametry, při vytváření nebo aktualizaci služby Application Gateway se zobrazí chyba. Následující příklad nastaví vlastní zásadu TLS ve službě Application Gateway. Nastaví minimální verzi protokolu na TLSv1_1 a povolí následující šifrovací sady:

  • 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_1 -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

Důležité

  • Pokud používáte vlastní zásady SSL ve verzi SKU služby Application Gateway v1 (Standard nebo WAF), nezapomeňte do seznamu přidat povinnou šifru "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256". Tento šifrovací algoritmus je vyžadován k povolení metrik a protokolování v Application Gateway v1 SKU. To není povinné pro skladovou položku služby Application Gateway v2 (Standard_v2 nebo WAF_v2).
  • Šifrovací sady "TLS_AES_128_GCM_SHA256" a "TLS_AES_256_GCM_SHA384" s TLSv1.3 nejsou přizpůsobitelné a ve výchozím nastavení zahrnuty při nastavení zásad CustomV2 s minimální verzí PROTOKOLU TLS 1.2 nebo 1.3. Tyto dvě šifrovací sady se ve výstupu Get Details nezobrazí s výjimkou portálu.

Pokud chcete nastavit minimální verzi protokolu na 1.3, musíte použít následující příkaz:

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

Tento obrázek dále vysvětluje použití zásad CustomV2 s minimálními verzemi protokolu 1.2 a 1.3.

Diagram znázorňující použití parametru ciphersuite pro zásady CustomV2.

Vytvoření aplikační brány s předdefinovanými zásadami TLS

Při konfiguraci předdefinované zásady TLS předáte následující parametry: PolicyType, PolicyName a ApplicationGateway. Pokud se pokusíte předat další parametry, při vytváření nebo aktualizaci služby Application Gateway se zobrazí chyba.

Následující příklad vytvoří novou aplikační bránu s předdefinovanými zásadami TLS.

# 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
$publicip = New-AzPublicIpAddress -ResourceGroupName $rg.ResourceGroupName -name publicIP01 -location "East US" -AllocationMethod Dynamic

# 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 = New-AzApplicationGatewayRequestRoutingRule -Name rule01 -RuleType Basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

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

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

# 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

Aktualizace existující aplikační brány pomocí předdefinovaných zásad TLS

Pokud chcete nastavit vlastní zásadu TLS, předejte následující parametry: PolicyType, MinProtocolVersion, CipherSuite a ApplicationGateway. Pokud chcete nastavit předdefinovanou zásadu TLS, předejte následující parametry: PolicyType, PolicyName a ApplicationGateway. Pokud se pokusíte předat další parametry, při vytváření nebo aktualizaci služby Application Gateway se zobrazí chyba.

Poznámka:

Použití nové předdefinované nebo vlastní zásady v2 vylepšuje stav zabezpečení a výkonu celé brány (zásady SSL a profil SSL). Staré i nové zásady proto nemůžou existovat společně. V případě, že existují klienti vyžadující starší verzi protokolu TLS nebo šifry (například TLS v1.0), musíte v bráně použít některou ze starších předdefinovaných nebo vlastních zásad.

V následujícím příkladu jsou ukázky kódu pro vlastní zásady i předdefinované zásady. Zrušte komentář k zásadám, které chcete použít.

# 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 "AppGwSslPolicy20170401S" -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

Další kroky

V přehledu přesměrování služby Application Gateway se dozvíte, jak přesměrovat provoz HTTP na koncový bod HTTPS.

Nastavte zásady SSL specifické pro naslouchací proces prostřednictvím portálu