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. Pokud chcete začít, přečtěte si 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ů:
- Přihlášení k Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>"
- Získání konfigurace služby Application Gateway
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
- Odebrání důvěryhodného klientského certifikátu z brány
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
- Přidání nového certifikátu do brány
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
- Aktualizace brány pomocí nového certifikátu
Set-AzApplicationGateway -ApplicationGateway $gateway