Udostępnij za pośrednictwem


Konfigurowanie wersji zasad protokołu TLS i mechanizmó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ń.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. 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.

Uwaga

Zalecamy używanie protokołu TLS 1.2 jako minimalnej wersji protokołu TLS w celu uzyskania lepszych zabezpieczeń w usłudze Application Gateway.

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

Domyślne zasady protokołu TLS są ustawione na AppGwSslPolicy20220101 dla interfejsu API w wersji 2023-02-01 lub nowszej. Odwiedź stronę Omówienie zasad protokołu TLS, aby dowiedzieć się więcej.

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

Wyświetlanie wstępnie zdefiniowanych zasad protokołu TLS

Usługa Application Gateway zawiera wiele wstępnie zdefiniowanych zasad, których można użyć. Polecenie Get-AzApplicationGatewaySslPredefinedPolicy cmdlet pobiera te zasady. Każda zasada ma włączone różne wersje protokołów i zestawy szyfrowania. Te wstępnie zdefiniowane zasady mogą służyć do szybkiego konfigurowania zasad TLS w bramie aplikacji. Domyślnie opcja AppGwSslPolicy20150501 jest wybierana, jeśli nie zdefiniowano żadnych określonych zasad protokołu TLS.

Poniższe dane wyjściowe to przykład uruchamiania Get-AzApplicationGatewaySslPredefinedPolicypolecenia .

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 konfigurowania niestandardowych zasad protokołu TLS należy przekazać następujące parametry: PolicyType, MinProtocolVersion, CipherSuite i ApplicationGateway. Jeśli próbujesz przekazać inne parametry, podczas tworzenia lub aktualizowania usługi Application Gateway wystąpi błąd. W poniższym przykładzie ustawiono niestandardowe zasady protokołu TLS w bramie aplikacji. Ustawia minimalną wersję protokołu na TLSv1_1 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_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

Ważne

  • Jeśli używasz niestandardowych zasad SSL w jednostce SKU usługi Application Gateway w wersji 1 (Standardowa lub WAF), upewnij się, że do listy dodano obowiązkowy szyfr "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256". Ten szyfr jest wymagany do włączenia metryk i rejestrowania w jednostce SKU usługi Application Gateway w wersji 1. Nie jest to obowiązkowe w przypadku jednostki SKU usługi Application Gateway w wersji 2 (Standard_v2 lub WAF_v2).
  • Zestawy szyfrowania "TLS_AES_128_GCM_SHA256" i "TLS_AES_256_GCM_SHA384" z protokołem TLSv1.3 nie są dostosowywalne i uwzględniane domyślnie podczas ustawiania zasad CustomV2 z minimalną wersją protokołu TLS w wersji 1.2 lub 1.3. Te dwa zestawy szyfrowania nie będą wyświetlane w danych wyjściowych Get Details z wyjątkiem portalu.

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
$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

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

Użycie nowych wstępnie zdefiniowanych lub niestandardowych zasad w wersji 2 zwiększa poziom zabezpieczeń protokołu SSL i wydajności całej bramy (zasady SSL i profil SSL). W związku z tym zarówno stare, jak i nowe zasady nie mogą współistnieć. Musisz użyć dowolnej ze starszych wstępnie zdefiniowanych lub niestandardowych zasad w bramie, jeśli istnieją klienci wymagający starszej wersji protokołu TLS lub szyfrowania (na przykład TLS w wersji 1.0).

W poniższym przykładzie istnieją przykłady kodu dla zasad niestandardowych i wstępnie zdefiniowanych zasad. Usuń komentarz z zasad, których 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 "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

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