Konfigurace vzájemného ověřování se službou Application Gateway prostřednictvím PowerShellu

Tento článek popisuje, jak pomocí PowerShellu nakonfigurovat vzájemné ověřování ve službě Application Gateway. Vzájemné ověřování znamená, že Služba Application Gateway ověřuje klienta odesílajícího požadavek pomocí klientského certifikátu, který nahrajete do služby Application Gateway.

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Tento článek vyžaduje modul Azure PowerShell verze 1.0.0 nebo novější. Verzi zjistíte spuštěním příkazu Get-Module -ListAvailable Az. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell. Pokud používáte PowerShell místně, musíte také spustit Login-AzAccount , abyste vytvořili připojení k Azure.

Než začnete

Ke konfiguraci vzájemného ověřování pomocí služby Application Gateway potřebujete klientský certifikát pro nahrání do brány. Klientský certifikát se použije k ověření certifikátu, který bude klient prezentovat službě Application Gateway. Pro účely testování můžete použít certifikát podepsaný svým držitelem. To se ale nedoporučuje pro produkční úlohy, protože je obtížnější spravovat a nejsou zcela zabezpečené.

Další informace, zejména o tom, jaký druh klientských certifikátů můžete nahrát, najdete v tématu Přehled vzájemného ověřování ve službě Application Gateway.

Vytvoření skupiny zdrojů

Nejprve ve svém předplatném vytvořte novou skupinu prostředků.

$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "APPGw tag"}

Vytvoření virtuální sítě

Nasaďte virtuální síť, do které se má služba Application Gateway nasadit.

$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

Vytvoření veřejné IP adresy

Vytvořte veřejnou IP adresu, která se bude používat se službou Application Gateway.

$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Static -sku Standard

Vytvoření konfigurace PROTOKOLU IP služby Application Gateway

Vytvořte konfigurace IP adres a front-endový port.

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

Konfigurace front-endu SSL

Nakonfigurujte certifikáty SSL pro službu Application Gateway.

$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$sslCertPath = $basedir + "/ScenarioTests/Data/ApplicationGatewaySslCert1.pfx"
$sslCert = New-AzApplicationGatewaySslCertificate -Name $sslCertName -CertificateFile $sslCertPath -Password $password

Konfigurace ověřování klientů

Nakonfigurujte ověřování klientů ve službě Application Gateway. Další informace o extrahování řetězů certifikátů důvěryhodných klientských certifikačních autorit, které se mají použít, najdete v tématu extrakce řetězů certifikátů důvěryhodné certifikační autority klienta.

Důležité

Ujistěte se, že nahrajete celý řetěz certifikátů certifikační autority klienta do jednoho souboru a pouze jeden řetěz na soubor.

Poznámka:

Doporučujeme používat protokol TLS 1.2 se vzájemným ověřováním, protože protokol TLS 1.2 bude v budoucnu zmocněn.

$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

Konfigurace back-endového fondu a nastavení

Nastavte back-endový fond a nastavení pro službu Application Gateway. Volitelně můžete nastavit back-endový důvěryhodný kořenový certifikát pro kompletní šifrování SSL.

$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

Konfigurace pravidla

Nastavte pravidlo ve službě Application Gateway.

$rule = New-AzApplicationGatewayRequestRoutingRule -Name $ruleName -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool

Nastavení výchozích zásad SSL pro budoucí naslouchací procesy

Při nastavování vzájemného ověřování jste nastavili zásadu SSL specifickou pro naslouchací proces. V tomto kroku můžete volitelně nastavit výchozí zásady SSL pro budoucí naslouchací procesy, které vytvoříte.

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

Vytvoření služby Application Gateway

Pomocí všeho, co jsme vytvořili výše, nasaďte službu 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

Vyčištění prostředků

Pokud už ji nepotřebujete, odeberte skupinu prostředků, aplikační bránu a všechny související prostředky pomocí remove-AzResourceGroup.

Remove-AzResourceGroup -Name $rgname

Prodloužení platnosti certifikátů klientské certifikační autority, jejichž platnost vypršela

V případě, že vypršela platnost certifikátu certifikační autority klienta, můžete certifikát v bráně aktualizovat pomocí následujících kroků:

  1. Přihlášení k Azure
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Získání konfigurace služby Application Gateway
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Odebrání důvěryhodného klientského certifikátu z brány
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Přidání nového certifikátu do brány
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Aktualizace brány pomocí nového certifikátu
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Další kroky