Konfigurowanie wersji zasad protokołu TLS i zestawów szyfrowania w usłudze Application Gateway

Dowiedz się, jak skonfigurować wersje zasad TLS/SSL i zestawy szyfrowania w usłudze Application Gateway. Możesz wybrać z listy wstępnie zdefiniowanych zasad, które zawierają różne konfiguracje wersji zasad TLS i włączone zestawy szyfrowania. Istnieje również możliwość zdefiniowania niestandardowych zasad protokołu TLS na podstawie wymagań.

Ważne

Zalecamy używanie protokołu TLS 1.2 jako minimalnej wersji protokołu TLS w celu uzyskania lepszych zabezpieczeń w usłudze Application Gateway. Od 31 sierpnia 2025 r. wszyscy klienci i serwery zaplecza współdziałające z usługą Azure Application Gateway muszą korzystać z protokołu Transport Layer Security (TLS) 1.2 lub nowszego, ponieważ obsługa protokołów TLS 1.0 i 1.1 zostanie przerwana.

Uwaga

Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Uzyskiwanie dostępnych opcji protokołu TLS

Polecenie Get-AzApplicationGatewayAvailableSslOptions cmdlet zawiera listę dostępnych wstępnie zdefiniowanych zasad, dostępnych zestawów szyfrowania i wersji protokołu, które można skonfigurować. Poniższy przykład przedstawia przykładowe dane wyjściowe z uruchomienia polecenia cmdlet.

Ważne

Bramy utworzone z API w wersji 2023-02-01 lub późniejszej używają domyślnej polityki TLS AppGwSslPolicy20220101 . Wartość DefaultPolicy w poniższym wyjściu nadal raportuje AppGwSslPolicy20150501, ponieważ wsparcie Azure PowerShell i Azure CLI dla zaktualizowanego domyślnego ustawienia nie jest jeszcze dostępne. Aby potwierdzić domyślne działanie dla twojej bramy, sprawdź właściwość tylko defaultPredefinedSslPolicy do odczytu w zasobie. Więcej informacji można znaleźć w przeglądzie polityki 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

Lista wstępnie zdefiniowanych polityk TLS

Application Gateway zawiera wiele predefiniowanych polityk, które możesz używać. Polecenie cmdlet Get-AzApplicationGatewaySslPredefinedPolicy pobiera te polityki. Każda polityka ma włączone różne wersje protokołów i zestawy szyfrowania. Użyj tych gotowych polityk, aby szybko skonfigurować politykę TLS na bramie aplikacji. Domyślna polityka stosowana, gdy nie definiujesz konkretnej polityki TLS, zależy od wersji API użytej do utworzenia bramy: bramy utworzone z API w wersji 2023-02-01 lub późniejszej domyślnie do AppGwSslPolicy20220101, podczas gdy bramy utworzone z wcześniejszymi wersjami API domyślnie używają AppGwSslPolicy20150501. Ponieważ wsparcie dla TLS 1.0 i 1.1 zakończyło się 31 sierpnia 2025 roku, należy użyć wstępnie zdefiniowanej polityki z 2022 roku (AppGwSslPolicy20220101 lub AppGwSslPolicy20220101S) lub polityki CustomV2, aby klienci i serwery backendowe negocjowały TLS 1.2 lub wyższą. Jeśli potrzebujesz konkretnego zestawu pakietów szyfrów, możesz użyć zamiast tego AppGwSslPolicy20170401S . Polityki zdefiniowane z 2022 roku oraz polityka CustomV2 są dostępne tylko na modelu v2 (Standard_v2 lub WAF_v2).

Poniższe dane wyjściowe to przykład uruchamiania 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
...

Konfigurowanie niestandardowych zasad protokołu TLS

Podczas konfiguracji niestandardowej polityki TLS podaj następujące parametry: PolicyType, MinProtocolVersion, CipherSuite, oraz ApplicationGateway. Jeśli próbujesz podać inne parametry, pojawia się błąd przy tworzeniu lub aktualizacji Application Gateway. W poniższym przykładzie ustawiono niestandardowe zasady protokołu TLS w bramie aplikacji. Ustawia minimalną wersję protokołu na TLSv1_2 i włącza następujące zestawy szyfrowania:

  • 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

Ważne

Pakiety TLS_AES_128_GCM_SHA256 szyfrów oraz TLS_AES_256_GCM_SHA384 TLSv1.3 nie są konfigurowalne i są domyślnie uwzględniane przy ustawianiu polityki CustomV2 z minimalną wersją TLS 1.2 lub 1.3. Te dwa zestawy szyfrów nie pojawiają się w wyjściu Pobierz szczegóły, z wyjątkiem Portal.

Aby ustawić minimalną wersję protokołu na 1.3, należy użyć następującego polecenia:

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

Na tej ilustracji wyjaśniono sposób użycia zasad CustomV2 z minimalnymi wersjami protokołu 1.2 i 1.3.

Diagram przedstawiający użycie parametru ciphersuite dla zasad CustomV2.

Tworzenie bramy aplikacji ze wstępnie zdefiniowanymi zasadami protokołu TLS

Podczas konfigurowania wstępnie zdefiniowanych zasad PROTOKOŁU TLS należy przekazać następujące parametry: PolicyType, PolicyName i ApplicationGateway. Jeśli próbujesz przekazać inne parametry, podczas tworzenia lub aktualizowania usługi Application Gateway wystąpi błąd.

Poniższy przykład tworzy nową bramę aplikacji ze wstępnie zdefiniowanymi zasadami protokołu 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 (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

Aktualizowanie istniejącej bramy aplikacji przy użyciu wstępnie zdefiniowanych zasad protokołu TLS

Aby ustawić niestandardowe zasady protokołu TLS, przekaż następujące parametry: PolicyType, MinProtocolVersion, CipherSuite i ApplicationGateway. Aby ustawić wstępnie zdefiniowane zasady protokołu TLS, przekaż następujące parametry: PolicyType, PolicyName i ApplicationGateway. Jeśli próbujesz przekazać inne parametry, podczas tworzenia lub aktualizowania usługi Application Gateway wystąpi błąd.

Uwaga

Zarówno stare, jak i nowe (2022 Predefined lub CustomV2) polityki SSL nie mogą współistnieć na tej samej bramie. Jeśli którykolwiek klient potrzebuje szyfrów dostępnych tylko w starszych politykach, należy użyć starszej predefiniowanej lub niestandardowej polityki na całej bramie. Ponieważ wsparcie dla TLS 1.0 i 1.1 zakończyło się 31 sierpnia 2025 roku, starsze polityki nie negocjują już tych wersji: zdefiniowane wcześniej polityki 20150501 i 20170401 zostały wycofane, a starsza polityka Custom obsługuje tylko TLS 1.2. Szczegóły można znaleźć w przeglądzie polityki TLS.

W poniższym przykładzie istnieją przykłady kodu dla zasad niestandardowych i wstępnie zdefiniowanych zasad. Usuń komentarz z polityki, której chcesz użyć.

# 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

Następne kroki

Odwiedź stronę Omówienie przekierowania usługi Application Gateway , aby dowiedzieć się, jak przekierowywać ruch HTTP do punktu końcowego HTTPS.

Zapoznaj się z konfigurowaniem zasad protokołu SSL specyficznych dla odbiornika podczas konfigurowania zasad specyficznych dla odbiornika SSL za pośrednictwem portalu