Delen via


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:

  1. Aanmelden bij Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Uw Application Gateway-configuratie ophalen
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Het vertrouwde clientcertificaat verwijderen uit de gateway
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Het nieuwe certificaat toevoegen aan de gateway
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. De gateway bijwerken met het nieuwe certificaat
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Volgende stappen