Wederzijdse verificatie met Application Gateway configureren via PowerShell
In dit artikel wordt beschreven hoe u PowerShell gebruikt om wederzijdse verificatie te configureren in uw Application Gateway. Wederzijdse verificatie betekent dat Application Gateway de client verifieert die de aanvraag verzendt met behulp van het clientcertificaat dat u uploadt naar de Application Gateway.
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Voor dit artikel is versie 1.0.0 of hoger van de Azure PowerShell-module vereist. Voer Get-Module -ListAvailable Az
uit om de versie te bekijken. Als u PowerShell wilt upgraden, raadpleegt u De Azure PowerShell-module installeren. Als u PowerShell lokaal uitvoert, moet u ook Login-AzAccount
uitvoeren om verbinding te kunnen maken met Azure.
Voordat u begint
Als u wederzijdse verificatie wilt configureren met een Application Gateway, hebt u een clientcertificaat nodig om naar de gateway te uploaden. Het clientcertificaat wordt gebruikt om het certificaat te valideren dat de client aan Application Gateway presenteert. Voor testdoeleinden kunt u een zelfondertekend certificaat maken. Dit wordt echter niet aanbevolen voor productieworkloads, omdat ze moeilijker te beheren zijn en niet volledig veilig zijn.
Zie Overzicht van wederzijdse verificatie met Application Gateway voor meer informatie, met name over wat voor soort clientcertificaten u kunt uploaden.
Een brongroep maken
Maak eerst een nieuwe resourcegroep in uw abonnement.
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "APPGw tag"}
Een virtueel netwerk maken
Implementeer een virtueel netwerk waarin uw Application Gateway moet worden geïmplementeerd.
$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
Een openbaar IP-adres maken
Maak een openbaar IP-adres voor gebruik met uw Application Gateway.
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Static -sku Standard
De IP-configuratie van Application Gateway maken
Maak de IP-configuraties en front-endpoort.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName -Port 443
Front-end-SSL configureren
Configureer de SSL-certificaten voor uw Toepassingsgateway.
$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$sslCertPath = $basedir + "/ScenarioTests/Data/ApplicationGatewaySslCert1.pfx"
$sslCert = New-AzApplicationGatewaySslCertificate -Name $sslCertName -CertificateFile $sslCertPath -Password $password
Clientverificatie configureren
Configureer clientverificatie op uw Application Gateway. Zie voor meer informatie over het extraheren van vertrouwde client-CA-certificaatketens die u hier kunt gebruiken, hoe u ca-certificaatketens voor vertrouwde clients kunt extraheren.
Belangrijk
Zorg ervoor dat u de volledige ca-certificaatketen van de client uploadt in één bestand en slechts één keten per bestand.
Notitie
We raden u aan TLS 1.2 te gebruiken met wederzijdse verificatie, omdat TLS 1.2 in de toekomst wordt verplicht.
$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
De back-endpool en -instellingen configureren
Stel de back-endpool en instellingen voor uw Application Gateway in. U kunt desgewenst het vertrouwde basiscertificaat voor de back-end instellen voor end-to-end SSL-versleuteling.
$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
De regel configureren
Stel een regel in op uw Toepassingsgateway.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name $ruleName -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
Standaard SSL-beleid instellen voor toekomstige listeners
U hebt een specifiek SSL-beleid voor listeners ingesteld tijdens het instellen van wederzijdse verificatie. In deze stap kunt u desgewenst het standaard-SSL-beleid instellen voor toekomstige listeners die u maakt.
$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"
De Toepassingsgateway maken
Implementeer uw Application Gateway met behulp van alles wat we hierboven hebben gemaakt.
$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
Resources opschonen
Wanneer u de resourcegroep, toepassingsgateway en alle gerelateerde resources niet meer nodig hebt, verwijdert u deze met remove-AzResourceGroup.
Remove-AzResourceGroup -Name $rgname
Verlopen CA-certificaten voor clients vernieuwen
In het geval dat uw client-CA-certificaat is verlopen, kunt u het certificaat op uw gateway bijwerken door de volgende stappen uit te voeren:
- Aanmelden bij Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>"
- Uw Application Gateway-configuratie ophalen
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
- Het vertrouwde clientcertificaat verwijderen uit de gateway
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
- Het nieuwe certificaat toevoegen aan de gateway
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
- De gateway bijwerken met het nieuwe certificaat
Set-AzApplicationGateway -ApplicationGateway $gateway