Konfigurera TLS-principversioner och chiffersviter för Application Gateway
Lär dig hur du konfigurerar TLS/SSL-principversioner och chiffersviter på Application Gateway. Du kan välja från en lista över fördefinierade principer som innehåller olika konfigurationer av TLS-principversioner och aktiverade chiffersviter. Du har också möjlighet att definiera en anpassad TLS-princip baserat på dina krav.
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Kommentar
Vi rekommenderar att du använder TLS 1.2 som lägsta TLS-protokollversion för bättre säkerhet på Application Gateway.
Hämta tillgängliga TLS-alternativ
Cmdleten Get-AzApplicationGatewayAvailableSslOptions
innehåller en lista över tillgängliga fördefinierade principer, tillgängliga chiffersviter och protokollversioner som kan konfigureras. I följande exempel visas ett exempel på utdata från att köra cmdleten.
Viktigt!
Standardprincipen för TLS är inställd på AppGwSslPolicy20220101 för API-versioner 2023-02-01 eller senare. Mer information finns i översikten över TLS-principer.
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 fördefinierade TLS-principer
Application Gateway levereras med flera fördefinierade principer som kan användas. Cmdleten Get-AzApplicationGatewaySslPredefinedPolicy
hämtar dessa principer. Varje princip har olika protokollversioner och chiffersviter aktiverade. Dessa fördefinierade principer kan användas för att snabbt konfigurera en TLS-princip på din programgateway. Som standard väljs AppGwSslPolicy20150501 om ingen specifik TLS-princip har definierats.
Följande utdata är ett exempel på hur du kör 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
...
Konfigurera en anpassad TLS-princip
När du konfigurerar en anpassad TLS-princip skickar du följande parametrar: PolicyType, MinProtocolVersion, CipherSuite och ApplicationGateway. Om du försöker skicka andra parametrar får du ett fel när du skapar eller uppdaterar Application Gateway. I följande exempel anges en anpassad TLS-princip på en programgateway. Den anger lägsta protokollversion till TLSv1_1
och aktiverar följande chiffersviter:
- 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
Viktigt!
- Om du använder en anpassad SSL-princip i Application Gateway v1 SKU (Standard eller WAF) ska du lägga till det obligatoriska chifferet "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" i listan. Det här chifferet krävs för att aktivera mått och loggning i Application Gateway v1 SKU. Detta är inte obligatoriskt för Application Gateway v2 SKU (Standard_v2 eller WAF_v2).
- Chiffersviterna "TLS_AES_128_GCM_SHA256" och "TLS_AES_256_GCM_SHA384" med TLSv1.3 är inte anpassningsbara och ingår som standard när du anger en CustomV2-princip med en lägsta TLS-version på 1.2 eller 1.3. Dessa två chiffersviter visas inte i get details-utdata, med undantag för portalen.
Om du vill ange lägsta protokollversion till 1.3 måste du använda följande kommando:
Set-AzApplicationGatewaySslPolicy -ApplicationGateway $AppGW -MinProtocolVersion TLSv1_3 -PolicyType CustomV2 -CipherSuite @()
Den här bilden förklarar vidare användningen av CustomV2-principen med minimiprotokollversionerna 1.2 och 1.3.
Skapa en programgateway med en fördefinierad TLS-princip
När du konfigurerar en fördefinierad TLS-princip skickar du följande parametrar: PolicyType, PolicyName och ApplicationGateway. Om du försöker skicka andra parametrar får du ett fel när du skapar eller uppdaterar Application Gateway.
I följande exempel skapas en ny programgateway med en fördefinierad TLS-princip.
# 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
Uppdatera en befintlig programgateway med en fördefinierad TLS-princip
Om du vill ange en anpassad TLS-princip skickar du följande parametrar: PolicyType, MinProtocolVersion, CipherSuite och ApplicationGateway. Om du vill ange en fördefinierad TLS-princip skickar du följande parametrar: PolicyType, PolicyName och ApplicationGateway. Om du försöker skicka andra parametrar får du ett fel när du skapar eller uppdaterar Application Gateway.
Kommentar
Om du använder en ny fördefinierad princip eller Customv2-princip förbättras SSL-säkerhet och prestandastatus för hela gatewayen (SSL-princip och SSL-profil). Därför kan både gamla och nya principer inte samexistera. Du måste använda någon av de äldre fördefinierade eller anpassade principerna i gatewayen, om det finns klienter som kräver äldre TLS-version eller chiffer (till exempel TLS v1.0).
I följande exempel finns det kodexempel för både anpassad princip och fördefinierad princip. Avkommentering av principen som du vill använda.
# 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
Nästa steg
Gå till Översikt över omdirigering av Application Gateway för att lära dig hur du omdirigerar HTTP-trafik till en HTTPS-slutpunkt.
Se hur du konfigurerar lyssnarspecifika SSL-principer när du konfigurerar en SSL-lyssnarspecifik princip via portalen