Konfigurieren von TLS-Richtlinienversionen und Verschlüsselungssammlungen für Application Gateway

Erfahren Sie, wie Sie TLS/SSL-Richtlinienversionen und Verschlüsselungssammlungen für Application Gateway konfigurieren. Ihnen steht eine Liste mit vordefinierten Richtlinien zur Verfügung, die verschiedene Konfigurationen von TLS-Richtlinienversionen und aktivierten Verschlüsselungssammlungen enthalten. Darüber hinaus können Sie eine benutzerdefinierte TLS-Richtlinie definieren, die auf Ihre individuellen Anforderungen abgestimmt ist.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Hinweis

Wir empfehlen die Verwendung von TLS 1.2 als minimale TLS-Protokollversion, um die Sicherheit von Application Gateway zu erhöhen.

Abrufen der verfügbaren TLS-Optionen

Das Cmdlet Get-AzApplicationGatewayAvailableSslOptions liefert eine Liste mit verfügbaren vordefinierten Richtlinien, verfügbaren Verschlüsselungssammlungen und konfigurierbaren Protokollversionen. Im Anschluss finden Sie eine Beispielausgabe für das Cmdlet.

Wichtig

Die standardmäßige TLS-Richtlinie ist für API-Versionen ab 2023-02-01 auf AppGwSslPolicy20220101 festgelegt. Weitere Informationen finden Sie unter TLS-Richtlinienübersicht.

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

Auflisten vordefinierter TLS-Richtlinien

Application Gateway bietet mehrere vordefinierte Richtlinien, die Sie verwenden können. Diese Richtlinien können mithilfe des Cmdlets Get-AzApplicationGatewaySslPredefinedPolicy abgerufen werden. In jeder Richtlinie sind unterschiedliche Protokollversionen und Verschlüsselungssammlungen aktiviert. Mit diesen vordefinierten Richtlinien können Sie schnell eine TLS-Richtlinie für Ihr Anwendungsgateway konfigurieren. Ist keine spezifische TLS-Richtlinie definiert, wird standardmäßig AppGwSslPolicy20150501 verwendet.

Die folgende Ausgabe ist ein Beispiel der Ausführung von 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
...

Konfigurieren einer benutzerdefinierten TLS-Richtlinie

Beim Konfigurieren einer benutzerdefinierten TLS-Richtlinie übergeben Sie folgende Parameter: „PolicyType“, „MinProtocolVersion“, „CipherSuite“ und „ApplicationGateway“. Wenn Sie versuchen, andere Parameter zu übergeben, tritt beim Erstellen oder Aktualisieren des Anwendungsgateways ein Fehler auf. Im folgenden Beispiel wird eine benutzerdefinierte TLS-Richtlinie für ein Anwendungsgateway festgelegt. Dabei wird die Mindestprotokollversion auf TLSv1_1 festgelegt, und es werden folgende Verschlüsselungssammlungen aktiviert:

  • 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

Wichtig

  • Wenn Sie eine benutzerdefinierte SSL-Richtlinie in der Application Gateway v1-SKU (Standard oder WAF) verwenden, stellen Sie sicher, dass Sie das obligatorische Verschlüsselungsverfahren „TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256“ der Liste hinzufügen. Dieses Verschlüsselungsverfahren ist erforderlich, damit Metriken und Protokollierung in der Application Gateway v1 SKU aktiviert werden können. Dies ist nicht obligatorisch für die Application Gateway v2-SKU (Standard_v2 oder WAF_v2).
  • Die Verschlüsselungssammlungen „TLS_AES_128_GCM_SHA256“ und „TLS_AES_256_GCM_SHA384“ mit TLSv1.3 sind nicht anpassbar und sind beim Festlegen einer CustomV2-Richtlinie mit der TLS-Mindestversion 1.2 oder 1.3 standardmäßig enthalten. Diese beiden Verschlüsselungssuiten werden nicht in der Ausgabe „Details abrufen“ angezeigt, außer im Portal.

Um die Mindestprotokollversion auf 1.3 festzulegen, müssen Sie den folgenden Befehl verwenden:

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

In dieser Abbildung wird die Verwendung der CustomV2-Richtlinie mit den Mindestprotokollversionen 1.2 und 1.3 erläutert.

Diagram that shows use of ciphersuite parameter for the CustomV2 policy.

Erstellen eines Anwendungsgateways mit einer vordefinierten TLS-Richtlinie

Beim Konfigurieren einer vordefinierten TLS-Richtlinie übergeben Sie folgende Parameter: „PolicyType“, „PolicyName“ und „ApplicationGateway“. Wenn Sie versuchen, andere Parameter zu übergeben, tritt beim Erstellen oder Aktualisieren des Anwendungsgateways ein Fehler auf.

Im folgenden Beispiel wird ein neues Anwendungsgateway mit einer vordefinierten TLS-Richtlinie erstellt.

# 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

Aktualisieren eines vorhandenen Anwendungsgateways mit einer vordefinierten TLS-Richtlinie

Um eine benutzerdefinierte TLS-Richtlinie festzulegen, übergeben Sie folgende Parameter: PolicyType, MinProtocolVersion, CipherSuite und ApplicationGateway. Um eine vordefinierte TLS-Richtlinie festzulegen, übergeben Sie folgende Parameter: PolicyType, PolicyName und ApplicationGateway. Wenn Sie versuchen, andere Parameter zu übergeben, tritt beim Erstellen oder Aktualisieren des Anwendungsgateways ein Fehler auf.

Hinweis

Durch die Verwendung einer neuen vordefinierten Richtlinie oder einer Customv2-Richtlinie werden die SSL-Sicherheit und Leistungsfähigkeit des gesamten Gateways (SSL-Richtlinie und SSL-Profil) erhöht. Daher können alte und neue Richtlinien nicht gleichzeitig vorhanden sein. Sie müssen eine der älteren vordefinierten oder benutzerdefinierten Richtlinien auf dem Gateway verwenden, falls Clients ältere TLS-Versionen oder Verschlüsselungsverfahren erfordern (z. B. TLS v1.0).

Das folgende Beispiel enthält Codebeispiele für die benutzerdefinierte Richtlinie und für die vordefinierte Richtlinie. Kommentieren Sie die Richtlinie aus, die Sie verwenden möchten.

# 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ächste Schritte

In der Übersicht über die Umleitung in Application Gateway erfahren Sie, wie Sie HTTP-Datenverkehr an einen HTTPS-Endpunkt weiterleiten.

Informationen zum Einrichten von listenerspezifischen SSL-Richtlinien finden Sie unter Konfigurieren von listenerspezifischen SSL-Richtlinien für Application Gateway über das Portal (Vorschau).