Azure PowerShell kullanarak TSL sonlandırma ile bir uygulama ağ geçidi oluşturma

Arka uç sunucuları için bir sanal makine ölçek kümesi kullanan TLS/SSL sonlandırma sertifikasına sahip bir uygulama ağ geçidi oluşturmak için Azure PowerShell'i kullanabilirsiniz. Bu örnekte örnek kümesi, uygulama ağ geçidinin varsayılan arka uç havuzuna eklenen iki sanal makine örneğini içerir.

Bu makalede şunları öğreneceksiniz:

  • Otomatik olarak imzalanan sertifika oluşturma
  • Ağ ayarlama
  • Sertifikalı bir uygulama ağ geçidi oluşturma
  • Varsayılan arka uç havuzuyla bir sanal makine ölçek kümesi oluşturma

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

Dekont

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 gerekirse, 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 Login-AzAccount gerekir.

Otomatik olarak imzalanan sertifika oluşturma

Üretim sırasında kullanım için, güvenilen bir sağlayıcı tarafından imzalanan geçerli bir sertifikayı içeri aktarmalısınız. Bu makale için New-SelfSignedCertificate kullanarak otomatik olarak imzalanan bir sertifika oluşturursunuz. Sertifikadan pfx dosyası dışarı aktarmak için döndürülen Parmak izi ile Export-PfxCertificate komutunu kullanabilirsiniz.

New-SelfSignedCertificate `
  -certstorelocation cert:\localmachine\my `
  -dnsname www.contoso.com

Bu sonuca benzer bir şey görmeniz gerekir:

PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my

Thumbprint                                Subject
----------                                -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630  CN=www.contoso.com

pfx dosyasını oluşturmak için parmak izini kullanın:

$pwd = ConvertTo-SecureString -String "Azure123456!" -Force -AsPlainText

Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

Kaynak grubu oluşturma

Kaynak grubu, Azure kaynaklarının dağıtıldığı ve yönetildiği bir mantıksal kapsayıcıdır. New-AzResourceGroup ile myResourceGroupAG adlı bir Azure kaynak grubu oluşturun.

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Ağ kaynakları oluşturma

New-AzVirtualNetworkSubnetConfig komutunu kullanarak myBackendSubnet ve myAGSubnet adlı alt ağları yapılandırın. Alt ağ yapılandırmalarıyla New-AzVirtualNetwork komutunu kullanarak myVNet adlı sanal ağı oluşturun. Son olarak, New-AzPublicIpAddress komutunu kullanarak myAGPublicIPAddress adlı genel IP adresini oluşturun. Bu kaynaklar, uygulama ağ geçidi ve ilişkili kaynakları ile ağ bağlantısı sağlamak için kullanılır.

$backendSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myBackendSubnet `
  -AddressPrefix 10.0.1.0/24

$agSubnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name myAGSubnet `
  -AddressPrefix 10.0.2.0/24

$vnet = New-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myVNet `
  -AddressPrefix 10.0.0.0/16 `
  -Subnet $backendSubnetConfig, $agSubnetConfig

$pip = New-AzPublicIpAddress `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -Name myAGPublicIPAddress `
  -AllocationMethod Static `
  -Sku Standard

Uygulama ağ geçidi oluşturma

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

Daha önce oluşturduğunuz myAGSubnet'i New-AzApplicationGatewayIPConfiguration kullanarak uygulama ağ geçidiyle ilişkilendirin. New-AzApplicationGatewayFrontendIPConfig komutunu kullanarak uygulama ağ geçidine myAGPublicIPAddress atayın.

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Name myVNet

$subnet=$vnet.Subnets[0]

$gipconfig = New-AzApplicationGatewayIPConfiguration `
  -Name myAGIPConfig `
  -Subnet $subnet

$fipconfig = New-AzApplicationGatewayFrontendIPConfig `
  -Name myAGFrontendIPConfig `
  -PublicIPAddress $pip

$frontendport = New-AzApplicationGatewayFrontendPort `
  -Name myFrontendPort `
  -Port 443

Arka uç havuzu ve ayarları oluşturma

New-AzApplicationGatewayBackendAddressPool komutunu kullanarak uygulama ağ geçidi için appGatewayBackendPool adlı arka uç havuzunu oluşturun. New-AzApplicationGatewayBackendHttp Ayarlar kullanarak arka uç havuzu ayarlarını yapılandırın.

$defaultPool = New-AzApplicationGatewayBackendAddressPool `
  -Name appGatewayBackendPool

$poolSettings = New-AzApplicationGatewayBackendHttpSettings `
  -Name myPoolSettings `
  -Port 80 `
  -Protocol Http `
  -CookieBasedAffinity Enabled `
  -RequestTimeout 120

Varsayılan dinleyici ve kural oluşturma

Uygulama ağ geçidinin trafiği arka uç havuzuna uygun şekilde yönlendirmesini sağlamak için bir dinleyici gereklidir. Bu örnekte, kök URL’deki HTTPS trafiğini dinleyen temel bir dinleyici oluşturacaksınız.

New-AzApplicationGatewaySslCertificate kullanarak bir sertifika nesnesi oluşturun ve daha önce oluşturduğunuz ön uç yapılandırması, ön uç bağlantı noktası ve sertifika ile New-AzApplicationGatewayHttpListener kullanarak mydefaultListener adlı bir dinleyici oluşturun. Dinleyicinin gelen trafik için kullanacağı arka uç havuzunu bilmesi için bir kural gerekir. New-AzApplicationGatewayRequestRoutingRule komutunu kullanarak rule1 adlı temel bir kural oluşturun.

$pwd = ConvertTo-SecureString `
  -String "Azure123456!" `
  -Force `
  -AsPlainText

$cert = New-AzApplicationGatewaySslCertificate `
  -Name "appgwcert" `
  -CertificateFile "c:\appgwcert.pfx" `
  -Password $pwd

$defaultlistener = New-AzApplicationGatewayHttpListener `
  -Name mydefaultListener `
  -Protocol Https `
  -FrontendIPConfiguration $fipconfig `
  -FrontendPort $frontendport `
  -SslCertificate $cert

$frontendRule = New-AzApplicationGatewayRequestRoutingRule `
  -Name rule1 `
  -RuleType Basic `
  -HttpListener $defaultlistener `
  -BackendAddressPool $defaultPool `
  -BackendHttpSettings $poolSettings `
  -priority 100

WAF ile uygulama ağ geçidi oluşturma

Gerekli destekleyici kaynakları oluşturduğunuza göre, New-AzApplicationGatewaySku kullanarak myAppGateway adlı uygulama ağ geçidi için parametreleri belirtin ve ardından sertifikayla New-AzApplicationGateway kullanarak oluşturun.

Uygulama ağ geçidi oluşturma

$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2

$appgw = New-AzApplicationGateway `
  -Name myAppGateway `
  -ResourceGroupName myResourceGroupAG `
  -Location eastus `
  -BackendAddressPools $defaultPool `
  -BackendHttpSettingsCollection $poolSettings `
  -FrontendIpConfigurations $fipconfig `
  -GatewayIpConfigurations $gipconfig `
  -FrontendPorts $frontendport `
  -HttpListeners $defaultlistener `
  -RequestRoutingRules $frontendRule `
  -Sku $sku `
  -SslCertificates $cert

Sanal makine ölçek kümesi oluşturma

Bu örnekte uygulama ağ geçidinde arka uç havuzu için sunucu sağlayan bir sanal makine ölçek kümesi oluşturacaksınız. IP ayarlarını yapılandırırken ölçek kümesini arka uç havuzuna atayın.

$vnet = Get-AzVirtualNetwork `
  -ResourceGroupName myResourceGroupAG `
  -Name myVNet

$appgw = Get-AzApplicationGateway `
  -ResourceGroupName myResourceGroupAG `
  -Name myAppGateway

$backendPool = Get-AzApplicationGatewayBackendAddressPool `
  -Name appGatewayBackendPool `
  -ApplicationGateway $appgw

$ipConfig = New-AzVmssIpConfig `
  -Name myVmssIPConfig `
  -SubnetId $vnet.Subnets[1].Id `
  -ApplicationGatewayBackendAddressPoolsId $backendPool.Id

$vmssConfig = New-AzVmssConfig `
  -Location eastus `
  -SkuCapacity 2 `
  -SkuName Standard_DS2 `
  -UpgradePolicyMode Automatic

Set-AzVmssStorageProfile $vmssConfig `
  -ImageReferencePublisher MicrosoftWindowsServer `
  -ImageReferenceOffer WindowsServer `
  -ImageReferenceSku 2016-Datacenter `
  -ImageReferenceVersion latest `
  -OsDiskCreateOption FromImage

Set-AzVmssOsProfile $vmssConfig `
  -AdminUsername azureuser `
  -AdminPassword "Azure123456!" `
  -ComputerNamePrefix myvmss

Add-AzVmssNetworkInterfaceConfiguration `
  -VirtualMachineScaleSet $vmssConfig `
  -Name myVmssNetConfig `
  -Primary $true `
  -IPConfiguration $ipConfig

New-AzVmss `
  -ResourceGroupName myResourceGroupAG `
  -Name myvmss `
  -VirtualMachineScaleSet $vmssConfig

IIS yükleme

$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1"); 
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }

$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss

Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
  -Name "customScript" `
  -Publisher "Microsoft.Compute" `
  -Type "CustomScriptExtension" `
  -TypeHandlerVersion 1.8 `
  -Setting $publicSettings

Update-AzVmss `
  -ResourceGroupName myResourceGroupAG `
  -Name myvmss `
  -VirtualMachineScaleSet $vmss

Uygulama ağ geçidini test etme

Uygulama ağ geçidinin genel IP adresini almak için Get-AzPublicIPAddress kullanabilirsiniz. Genel IP adresini kopyalayıp tarayıcınızın adres çubuğuna yapıştırın.

Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress

Secure warning

Otomatik olarak imzalanan sertifika kullandıysanız güvenlik uyarısını kabul etmek için, Ayrıntılar’ı seçin ve sonra Web sayfasına gidin: Güvenli IIS siteniz, sonra aşağıdaki örnekte olduğu gibi görüntülenir:

Test base URL in application gateway

Kaynakları temizleme

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 myResourceGroupAG

Sonraki adımlar

Birden çok web sitesi barındıran bir uygulama ağ geçidi oluşturma