Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób konfigurowania wzajemnego uwierzytelniania w usłudze Application Gateway przy użyciu programu PowerShell. Wzajemne uwierzytelnianie oznacza, że usługa Application Gateway uwierzytelnia klienta wysyłającego żądanie przy użyciu certyfikatu klienta przekazanego do usługi Application Gateway.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Uwaga
Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Ten artykuł wymaga modułu Azure PowerShell w wersji 1.0.0 lub nowszej. Uruchom Get-Module -ListAvailable Az, aby znaleźć wersję. Jeśli konieczne będzie uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. Jeśli używasz programu PowerShell lokalnie, musisz też uruchomić polecenie Connect-AzAccount, aby utworzyć połączenie z platformą Azure.
Zanim rozpoczniesz
Aby skonfigurować wzajemne uwierzytelnianie z usługą Application Gateway, należy przesłać certyfikat klienta do tej bramy. Certyfikat klienta służy do weryfikowania certyfikatu, który klient przedstawia w usłudze Application Gateway. Do celów testowych można użyć certyfikatu z podpisem własnym. Nie jest to jednak zalecane w przypadku obciążeń produkcyjnych, ponieważ są one trudniejsze do zarządzania i nie są całkowicie bezpieczne.
Aby dowiedzieć się więcej, szczególnie na temat rodzaju certyfikatów klienta, które można przekazać, zobacz Omówienie wzajemnego uwierzytelniania za pomocą usługi Application Gateway.
Tworzenie grupy zasobów
Najpierw utwórz nową grupę zasobów w ramach subskrypcji.
$resourceGroup = New-AzResourceGroup -Name $rgname -Location $location -Tags @{ testtag = "APPGw tag"}
Tworzenie sieci wirtualnej
Wdróż sieć wirtualną, w której ma zostać wdrożona usługa Application Gateway.
$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
Tworzenie publicznego adresu IP
Utwórz publiczny adres IP do użycia z usługą Application Gateway.
$publicip = New-AzPublicIpAddress -ResourceGroupName $rgname -name $publicIpName -location $location -AllocationMethod Static -sku Standard
Tworzenie konfiguracji adresu IP usługi Application Gateway
Utwórz konfiguracje IP i port frontendowy.
$gipconfig = New-AzApplicationGatewayIPConfiguration -Name $gipconfigname -Subnet $gwSubnet
$fipconfig = New-AzApplicationGatewayFrontendIPConfig -Name $fipconfigName -PublicIPAddress $publicip
$port = New-AzApplicationGatewayFrontendPort -Name $frontendPortName -Port 443
Konfigurowanie protokołu TLS/SSL frontonu
Skonfiguruj certyfikaty TLS/SSL dla usługi Application Gateway.
$password = ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force
$sslCertPath = $basedir + "/ScenarioTests/Data/ApplicationGatewaySslCert1.pfx"
$sslCert = New-AzApplicationGatewaySslCertificate -Name $sslCertName -CertificateFile $sslCertPath -Password $password
Konfigurowanie uwierzytelniania klienta
Skonfiguruj uwierzytelnianie klienta w usłudze Application Gateway. Aby uzyskać więcej informacji na temat wyodrębniania łańcuchów certyfikatów zaufanego urzędu certyfikacji klienta do użycia tutaj, zobacz jak wyodrębniać łańcuchy certyfikatów zaufanego urzędu certyfikacji klienta.
Ważne
Upewnij się, że cały łańcuch certyfikatów urzędu certyfikacji klienta jest przekazywany w jednym pliku, przy czym w jednym pliku może znajdować się tylko jeden łańcuch. Maksymalny rozmiar każdego przekazanego pliku musi wynosić 25 KB lub mniej.
Uwaga
Zalecamy używanie protokołu TLS 1.2 z uwierzytelnianiem wzajemnym, ponieważ protokół TLS 1.2 będzie wymagany od 31 sierpnia 2025 r.
$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
Skonfiguruj zaplecze i ustawienia
Skonfiguruj pulę zaplecza i ustawienia dla usługi Application Gateway. Opcjonalnie skonfiguruj zaufany certyfikat główny zaplecza na potrzeby kompleksowego szyfrowania TLS/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
Konfigurowanie reguły
Skonfiguruj regułę w usłudze Application Gateway.
$rule = New-AzApplicationGatewayRequestRoutingRule -Name $ruleName -RuleType basic -BackendHttpSettings $poolSetting -HttpListener $listener -BackendAddressPool $pool
Konfigurowanie domyślnych zasad PROTOKOŁU TLS/SSL dla przyszłych odbiorników
Skonfigurowaliśmy zasady protokołu TLS/SSL specyficzne dla odbiornika podczas konfigurowania wzajemnego uwierzytelniania. W tym kroku można opcjonalnie ustawić domyślne zasady protokołu TLS/SSL dla tworzonych w przyszłości odbiorników.
$sslPolicyGlobal = New-AzApplicationGatewaySslPolicy -PolicyType Predefined -PolicyName "AppGwSslPolicy20170401"
Tworzenie usługi Application Gateway
Za pomocą wszystkiego, co utworzyliśmy, wdróż usługę 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
Czyszczenie zasobów
Gdy grupa zasobów, brama aplikacji i wszystkie powiązane zasoby nie będą już potrzebne, usuń je przy użyciu polecenia Remove-AzResourceGroup.
Remove-AzResourceGroup -Name $rgname
Odnawianie wygasłych certyfikatów klienta CA
W przypadku wygaśnięcia certyfikatu klienta urzędu certyfikacji, można certyfikat w bramie zaktualizować, wykonując następujące kroki:
- Zaloguj się na platformie Azure
Connect-AzAccount Select-AzSubscription -Subscription "<sub name>" - Pobierz swoją konfigurację Application Gateway
$gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>" - Usuwanie zaufanego certyfikatu klienta z bramy
Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway - Dodaj nowy certyfikat do bramy
Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>" - Aktualizowanie bramy przy użyciu nowego certyfikatu
Set-AzApplicationGateway -ApplicationGateway $gateway