Konfigurera ömsesidig autentisering med Application Gateway via PowerShell
Den här artikeln beskriver hur du använder PowerShell för att konfigurera ömsesidig autentisering på din Application Gateway. Ömsesidig autentisering innebär att Application Gateway autentiserar klienten som skickar begäran med det klientcertifikat som du överför till Application Gateway.
Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Den här artikeln kräver Azure PowerShell-modulen version 1.0.0 eller senare. Kör Get-Module -ListAvailable Az
för att hitta versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Login-AzAccount
för att skapa en anslutning till Azure.
Innan du börjar
För att konfigurera ömsesidig autentisering med en Application Gateway behöver du ett klientcertifikat för att ladda upp till gatewayen. Klientcertifikatet används för att verifiera certifikatet som klienten ska presentera för Application Gateway. I testsyfte kan du använda ett självsignerat certifikat. Detta rekommenderas dock inte för produktionsarbetsbelastningar eftersom de är svårare att hantera och inte är helt säkra.
Mer information, särskilt om vilken typ av klientcertifikat du kan ladda upp, finns i Översikt över ömsesidig autentisering med Application Gateway.
Skapa en resursgrupp
Skapa först en ny resursgrupp i din prenumeration.
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "APPGw tag"}
Skapa ett virtuellt nätverk
Distribuera ett virtuellt nätverk för din Application Gateway som ska distribueras i.
$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
Skapa en offentlig IP-adress
Skapa en offentlig IP-adress som ska användas med din Application Gateway.
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Static -sku Standard
Skapa IP-konfigurationen för Application Gateway
Skapa IP-konfigurationer och klientdelsport.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName -Port 443
Konfigurera klientdels-SSL
Konfigurera SSL-certifikaten för din Application Gateway.
$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$sslCertPath = $basedir + "/ScenarioTests/Data/ApplicationGatewaySslCert1.pfx"
$sslCert = New-AzApplicationGatewaySslCertificate -Name $sslCertName -CertificateFile $sslCertPath -Password $password
Konfigurera klientautentisering
Konfigurera klientautentisering på din Application Gateway. Mer information om hur du extraherar certifikatkedjor för betrodd klientcertifikatutfärdare som ska användas här finns i hur du extraherar certifikatkedjor för betrodd klientcertifikatutfärdare.
Viktigt!
Se till att du laddar upp hela certifikatkedjan för klientcertifikatutfärdare i en fil och endast en kedja per fil.
Kommentar
Vi rekommenderar att du använder TLS 1.2 med ömsesidig autentisering eftersom TLS 1.2 kommer att tillåtas i framtiden.
$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
Konfigurera serverdelspoolen och inställningarna
Konfigurera serverdelspool och inställningar för din Application Gateway. Du kan också konfigurera det betrodda rotcertifikatet för serverdelen för SSL-kryptering från slutpunkt till slutpunkt.
$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
Konfigurera regeln
Konfigurera en regel för din Application Gateway.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name $ruleName -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
Konfigurera standard-SSL-princip för framtida lyssnare
Du har konfigurerat en lyssnarspecifik SSL-princip när du konfigurerar ömsesidig autentisering. I det här steget kan du ange standardprincipen för SSL för framtida lyssnare som du skapar.
$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"
Skapa Application Gateway
Använd allt vi skapade ovan och distribuera din Application Gateway.
$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
Rensa resurser
När den inte längre behövs tar du bort resursgruppen, programgatewayen och alla relaterade resurser med Remove-AzResourceGroup.
Remove-AzResourceGroup -Name $rgname
Förnya certifikat för klientcertifikatutfärdare som har upphört att gälla
Om klientcertifikatutfärdarcertifikatet har upphört att gälla kan du uppdatera certifikatet på din gateway genom följande steg:
- Logga in på Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>"
- Hämta din Application Gateway-konfiguration
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
- Ta bort det betrodda klientcertifikatet från gatewayen
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
- Lägg till det nya certifikatet på gatewayen
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
- Uppdatera gatewayen med det nya certifikatet
Set-AzApplicationGateway -ApplicationGateway $gateway