Dela via


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:

  1. Logga in på Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Hämta din Application Gateway-konfiguration
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Ta bort det betrodda klientcertifikatet från gatewayen
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Lägg till det nya certifikatet på gatewayen
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Uppdatera gatewayen med det nya certifikatet
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Nästa steg