PowerShell aracılığıyla Application Gateway ile karşılıklı kimlik doğrulamayı yapılandırma

Bu makalede, Application Gateway'inizde karşılıklı kimlik doğrulaması yapılandırmak için PowerShell'in nasıl kullanılacağı açıklanmaktadır. Karşılıklı kimlik doğrulaması, Application Gateway'in Application Gateway'e yüklediğiniz istemci sertifikasını kullanarak isteği gönderen istemcinin kimliğini doğrular.

Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.

Uyarı

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Bu makale, Azure PowerShell modülünün 1.0.0 veya sonraki bir sürümünü gerektirir. Sürümü bulmak için Get-Module -ListAvailable Az komutunu çalıştırın. Yükseltmeniz gerekiyorsa bkz. Azure PowerShell modülünü yükleme. PowerShell'i yerel olarak çalıştırıyorsanız Azure ile bağlantı oluşturmak için de komutunu çalıştırmanız Connect-AzAccount gerekir.

Başlamadan önce

Application Gateway ile karşılıklı kimlik doğrulamasını yapılandırmak için ağ geçidine yüklemek için bir istemci sertifikasına ihtiyacınız vardır. İstemci sertifikası, istemcinin Application Gateway'e sunduğu sertifikayı doğrulamak için kullanılır. Test amacıyla otomatik olarak imzalanan bir sertifika kullanabilirsiniz. Ancak bu, üretim iş yükleri için önerilmez, çünkü bunların yönetilmesi daha zordur ve tamamen güvenli değildir.

Özellikle ne tür istemci sertifikalarını karşıya yükleyebileceğiniz hakkında daha fazla bilgi edinmek için bkz. Application Gateway ile karşılıklı kimlik doğrulamasına genel bakış.

Bir kaynak grubu oluşturun

İlk olarak aboneliğinizde yeni bir kaynak grubu oluşturun.

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

Sanal ağ oluşturma

Application Gateway'inizin dağıtılması için bir sanal ağ dağıtın.

$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

Genel IP oluşturma

Application Gateway'inizle kullanmak için bir genel IP oluşturun.

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

Application Gateway IP yapılandırmasını oluşturma

IP yapılandırmalarını ve ön uç bağlantı noktasını oluşturun.

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

Ön uç TLS/SSL'yi yapılandırma

Application Gateway'iniz için TLS/SSL sertifikalarını yapılandırın.

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

İstemci kimlik doğrulamayı yapılandırma

Application Gateway'inizde istemci kimlik doğrulamayı yapılandırın. Burada kullanmak üzere güvenilen istemci CA sertifika zincirlerini ayıklama hakkında daha fazla bilgi için bkz. Güvenilen istemci CA sertifika zincirlerini ayıklama.

Önemli

İstemci CA sertifika zincirinin tamamını tek bir dosyaya ve dosya başına yalnızca bir zincire yüklediğinizden emin olun. Karşıya yüklenen her dosyanın boyutu üst sınırı 25 KB veya daha az olmalıdır.

Uyarı

TLS 1.2, 31 Ağustos 2025'den itibaren zorunlu kılınacağı için karşılıklı kimlik doğrulaması ile TLS 1.2 kullanmanızı öneririz.

$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

Arka uç havuzu ve ayarlarını yapılandırın

Application Gateway'iniz için arka uç havuzunu ve ayarlarını ayarlayın. İsteğe bağlı olarak, uçtan uca TLS/SSL şifrelemesi için arka uç güvenilen kök sertifikasını ayarlayın.

$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

Kuralı yapılandırın.

Application Gateway'inizde bir kural ayarlayın.

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

Gelecek dinleyiciler için varsayılan TLS/SSL ilkesini ayarlama

Karşılıklı kimlik doğrulamasını ayarlarken dinleyiciye özgü bir TLS/SSL ilkesi ayarladınız. Bu adımda, gelecekte oluşturacağınız dinleyiciler için isteğe bağlı olarak varsayılan TLS/SSL ilkesini ayarlayabilirsiniz.

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

Application Gateway oluşturma

Oluşturduğumuz her şeyi kullanarak Application Gateway'inizi dağıtın.

$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

Kaynakları temizle

Artık gerekli olmadığında Remove-AzResourceGroup kullanarak kaynak grubunu, uygulama ağ geçidini ve tüm ilgili kaynakları kaldırın.

Remove-AzResourceGroup -Name $rgname

Süresi dolan istemci CA sertifikalarını yenileme

İstemci CA sertifikanızın süresinin dolması durumunda, aşağıdaki adımları izleyerek ağ geçidinizdeki sertifikayı güncelleştirebilirsiniz:

  1. Azure'da oturum açma
    Connect-AzAccount
    Select-AzSubscription -Subscription "<sub name>"
    
  2. Application Gateway yapılandırmanızı alın
    $gateway = Get-AzApplicationGateway -Name "<gateway-name>" -ResourceGroupName "<resource-group-name>"
    
  3. Güvenilen istemci sertifikasını ağ geçidinden kaldırma
    Remove-AzApplicationGatewayTrustedClientCertificate -Name "<name-of-client-certificate>" -ApplicationGateway $gateway
    
  4. Yeni sertifikayı ağ geçidine ekleme
    Add-AzApplicationGatewayTrustedClientCertificate -ApplicationGateway $gateway -Name "<name-of-new-cert>" -CertificateFile "<path-to-certificate-file>"
    
  5. Ağ geçidini yeni sertifikayla güncelleştirme
    Set-AzApplicationGateway -ApplicationGateway $gateway
    

Sonraki Adımlar