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ů.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. 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.
Poznámka:
Pro lepší zabezpečení ve službě Application Gateway doporučujeme používat protokol TLS 1.2 jako minimální verzi protokolu TLS.
Získání dostupných možností protokolu TLS
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 příklad výstupu spuštění rutiny.
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. Rutina Get-AzApplicationGatewaySslPredefinedPolicy
tyto zásady načte. Každá zásada má povolené různé verze protokolů a šifrovací sady. Tyto předdefinované zásady se dají použít k rychlé konfiguraci zásad 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 a TLSv1_1
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 skladové poště služby Application Gateway v1 (Standard nebo WAF), nezapomeňte do seznamu přidat povinnou šifru "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256". Tato šifra se vyžaduje k povolení metrik a protokolování ve skladové poště služby Application Gateway v1. 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.
Vytvoření aplikační brány s předem definovaný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ředem definovaný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 pre-defined 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ředem definovaný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.
Nastavení zásad SSL specifických pro naslouchací proces při nastavování zásad specifických pro naslouchací proces SSL prostřednictvím portálu