Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie powerShell zum Konfigurieren der gegenseitigen Authentifizierung auf Ihrem Anwendungsgateway verwenden. Die gegenseitige Authentifizierung bedeutet, dass das Anwendungsgateway den Client authentifiziert, der die Anforderung mithilfe des Clientzertifikats sendet, das Sie auf das Anwendungsgateway hochladen.
Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
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 von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Für diesen Artikel ist Version 1.0.0 oder höher des Azure PowerShell-Moduls erforderlich. Führen Sie Get-Module -ListAvailable Az aus, um die Version zu ermitteln. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Connect-AzAccount ausführen, um eine Verbindung mit Azure herzustellen.
Bevor Sie anfangen
Um die gegenseitige Authentifizierung mit einem Anwendungsgateway zu konfigurieren, benötigen Sie ein Clientzertifikat zum Hochladen auf das Gateway. Das Clientzertifikat wird verwendet, um das Zertifikat zu überprüfen, das der Client dem Anwendungsgateway darstellt. Sie können zu Testzwecken ein selbstsigniertes Zertifikat verwenden. Dies wird jedoch nicht für Produktionsworkloads empfohlen, da sie schwieriger zu verwalten sind und nicht vollständig sicher sind.
Weitere Informationen, insbesondere darüber, welche Art von Clientzertifikaten Sie hochladen können, finden Sie unter Übersicht über die gegenseitige Authentifizierung mit dem Anwendungsgateway.
Erstellen einer Ressourcengruppe
Erstellen Sie zunächst eine neue Ressourcengruppe in Ihrem Abonnement.
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "APPGw tag"}
Erstellen eines virtuellen Netzwerks
Stellen Sie ein virtuelles Netzwerk bereit, in dem Ihr Anwendungsgateway bereitgestellt werden soll.
$gwSubnet = New-AzVirtualNetworkSubnetConfig -Name $gwSubnetName -AddressPrefix 10.0.0.0/24
$vnet = New-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname -Location $location -AddressPrefix 10.0.0.0/16 -Subnet $gwSubnet
$vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgname
$gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name $gwSubnetName -VirtualNetwork $vnet
Erstellen einer öffentlichen IP
Erstellen Sie eine öffentliche IP, die mit Ihrem Anwendungsgateway verwendet werden soll.
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Static -sku Standard
Erstellen der IP-Konfiguration des Anwendungsgateways
Erstellen Sie die IP-Konfigurationen und den Frontend-Port.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName -Port 443
Konfigurieren von Frontend-TLS/SSL
Konfigurieren Sie die TLS/SSL-Zertifikate für Ihr Anwendungsgateway.
$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$sslCertPath = $basedir + "/ScenarioTests/Data/ApplicationGatewaySslCert1.pfx"
$sslCert = New-AzApplicationGatewaySslCertificate -Name $sslCertName -CertificateFile $sslCertPath -Password $password
Konfigurieren der Clientauthentifizierung
Konfigurieren Sie die Clientauthentifizierung auf Ihrem Anwendungsgateway. Weitere Informationen zum Extrahieren vertrauenswürdiger CA-Zertifikatketten für die Verwendung hier finden Sie unter Extrahieren von CA-Zertifikatketten für vertrauenswürdige Clients.
Von Bedeutung
Stellen Sie sicher, dass Sie die gesamte CA-Zertifikatkette des Clients in einer Datei hochladen und jeweils nur eine Kette pro Datei. Die maximale Größe jeder hochgeladenen Datei darf maximal 25 KB betragen.
Hinweis
Wir empfehlen die Verwendung von TLS 1.2 mit gegenseitiger Authentifizierung, da TLS 1.2 ab dem 31. August 2025 vorgeschrieben sein wird.
$clientCertFilePath = $basedir + "/ScenarioTests/Data/TrustedClientCertificate.cer"
$trustedClient01 = New-AzApplicationGatewayTrustedClientCertificate -Name $trustedClientCert01Name -CertificateFile $clientCertFilePath
$sslPolicy = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401S"
$clientAuthConfig = New-AzApplicationGatewayClientAuthConfiguration -VerifyClientCertIssuerDN
$sslProfile01 = New-AzApplicationGatewaySslProfile -Name $sslProfile01Name -SslPolicy $sslPolicy -ClientAuthConfiguration $clientAuthConfig -TrustedClientCertificates $trustedClient01
$listener = New-AzApplicationGatewayHttpListener -Name $listenerName -Protocol Https -SslCertificate $sslCert -FrontendIPConfiguration $fipconfig -FrontendPort $port -SslProfile $sslProfile01
Konfigurieren des Back-End-Pools und der Einstellungen
Richten Sie back-End-Pool und -Einstellungen für Ihr Anwendungsgateway ein. Richten Sie optional das vertrauenswürdige Back-End-Stammzertifikat für die End-to-End-TLS/SSL-Verschlüsselung ein.
$certFilePath = $basedir + "/ScenarioTests/Data/ApplicationGatewayAuthCert.cer"
$trustedRoot = New-AzApplicationGatewayTrustedRootCertificate -Name $trustedRootCertName -CertificateFile $certFilePath
$pool = New-AzApplicationGatewayBackendAddressPool -Name $poolName -BackendIPAddresses www.microsoft.com, www.bing.com
$poolSetting = New-AzApplicationGatewayBackendHttpSettings -Name $poolSettingName -Port 443 -Protocol Https -CookieBasedAffinity Enabled -PickHostNameFromBackendAddress -TrustedRootCertificate $trustedRoot
Konfigurieren der Regel
Richten Sie eine Regel für Ihr Anwendungsgateway ein.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name $ruleName -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
Einrichten der Standardmäßigen TLS/SSL-Richtlinie für zukünftige Listener
Sie haben eine listenerspezifische TLS/SSL-Richtlinie eingerichtet, während Sie die gegenseitige Authentifizierung einrichten. In diesem Schritt können Sie optional die standardmäßige TLS/SSL-Richtlinie für zukünftige Listener festlegen, die Sie erstellen.
$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"
Erstellen des Anwendungsgateways
Stellen Sie mit allem, was wir erstellt haben, Ihr Anwendungsgateway bereit.
$sku = New-AzApplicationGatewaySku -Name Standard_v2 -Tier Standard_v2
$appgw = New-AzApplicationGateway -Name $appgwName -ResourceGroupName $rgname -Zone 1,2 -Location $location -BackendAddressPools $pool -BackendHttpSettingsCollection $poolSetting -FrontendIpConfigurations $fipconfig -GatewayIpConfigurations $gipconfig -FrontendPorts $port -HttpListeners $listener -RequestRoutingRules $rule -Sku $sku -SslPolicy $sslPolicyGlobal -TrustedRootCertificate $trustedRoot -AutoscaleConfiguration $autoscaleConfig -TrustedClientCertificates $trustedClient01 -SslProfiles $sslProfile01 -SslCertificates $sslCert
Bereinigen von Ressourcen
Wenn Sie die Ressourcengruppe, das Anwendungsgateway und alle zugehörigen Ressourcen nicht mehr benötigen, entfernen Sie sie mit dem Befehl Remove-AzResourceGroup.
Remove-AzResourceGroup -Name $rgname
Erneuern abgelaufene Zertifikate der Client-Zertifizierungsstellen
Falls Ihr Clientzertifizierungsstellenzertifikat abgelaufen ist, können Sie das Zertifikat auf Ihrem Gateway über die folgenden Schritte aktualisieren:
- Anmelden bei Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>" - Holen Sie sich Ihre Anwendungsgateway-Konfiguration
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>" - Entfernen des vertrauenswürdigen Clientzertifikats vom Gateway
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway - Hinzufügen des neuen Zertifikats zum Gateway
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>" - Aktualisieren des Gateways mit dem neuen Zertifikat
Set-AzApplicationGateway -ApplicationGateway $gateway