Share via


Wederzijdse verificatie met Application Gateway configureren via PowerShell

In dit artikel wordt beschreven hoe u PowerShell gebruikt voor het configureren van wederzijdse verificatie op 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 nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.

Opmerking

U wordt aangeraden 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 vinden. Zie Azure PowerShell-module installerenals u een upgrade wilt uitvoeren. Als u PowerShell lokaal uitvoert, moet u ook Connect-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 gebruiken. 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 frontend-poort.

$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName  -Port 443

Front-end TLS/SSL configureren

Configureer de TLS/SSL-certificaten voor uw Application Gateway.

$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. Voor meer informatie over het extraheren van vertrouwde cliënt-CA-certificaatketens die hier kunnen worden gebruikt, zie hoe u vertrouwde cliënt-CA-certificaatketens kunt extraheren.

Belangrijk

Zorg ervoor dat u de volledige ca-certificaatketen van de client uploadt in één bestand en slechts één keten per bestand. De maximale grootte van elk geüpload bestand moet 25 kB of minder zijn.

Opmerking

We raden u aan TLS 1.2 met wederzijdse verificatie te gebruiken als TLS 1.2 vanaf 31 augustus 2025 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 van de back-end instellen voor end-to-end TLS/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 TLS/SSL-beleid instellen voor toekomstige listeners

U hebt een listenerspecifiek TLS/SSL-beleid ingesteld tijdens het instellen van wederzijdse verificatie. In deze stap kunt u desgewenst het standaard TLS/SSL-beleid instellen voor toekomstige listeners die u maakt.

$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"

De Application Gateway maken

Implementeer uw Toepassingsgateway met alles wat we 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

De hulpbronnen 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