Membuat gateway aplikasi dengan penghentian TLS menggunakan Azure PowerShell
Anda dapat menggunakan Azure PowerShell untuk membuat gateway aplikasi dengan sertifikat untuk penghentian TLS/SSL yang menggunakan rangkaian skala komputer virtual untuk server ujung belakang. Dalam contoh ini, rangkaian skala berisi dua instans komputer virtual yang ditambahkan ke kumpulan backend default dari gateway aplikasi.
Dalam artikel ini, Anda akan mempelajari cara:
- Membuat sertifikat yang ditandatangani sendiri
- Menyiapkan jaringan
- Membuat gateway aplikasi dengan sertifikat
- Membuat set skala komputer virtual dengan kumpulan ujung belakang default
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Artikel ini memerlukan modul Azure PowerShell versi 1.0.0 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az
untuk menemukan versinya. Jika Anda perlu peningkatan, lihat Instal modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga harus menjalankan Login-AzAccount
untuk membuat koneksi dengan Azure.
Membuat sertifikat yang ditandatangani sendiri
Untuk penggunaan produksi, Anda harus mengimpor sertifikat yang valid dan ditandatangani oleh penyedia tepercaya. Untuk artikel ini, Anda akan membuat sertifikat yang ditandatangani otomatis menggunakan New-SelfSignedCertificate. Anda dapat menggunakan Export-PfxCertificate dengan Thumbprint yang dihasilkan untuk mengekspor file pfx dari sertifikat.
New-SelfSignedCertificate `
-certstorelocation cert:\localmachine\my `
-dnsname www.contoso.com
Anda akan melihat hasil seperti berikut:
PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my
Thumbprint Subject
---------- -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 CN=www.contoso.com
Gunakan thumbprint untuk membuat file pfx:
$pwd = ConvertTo-SecureString -String "Azure123456!" -Force -AsPlainText
Export-PfxCertificate `
-cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
-FilePath c:\appgwcert.pfx `
-Password $pwd
Buat grup sumber daya
Grup sumber daya adalah kontainer logis yang disebarkan dan dikelola oleh sumber daya Azure. Buat grup sumber daya Azure bernama myResourceGroupAG dengan New-AzResourceGroup.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Membuat sumber daya jaringan
Konfigurasikan subnet untuk myBackendSubnet dan myAGSubnet menggunakan New-AzVirtualNetworkSubnetConfig. Buat jaringan virtual bernama myVNet menggunakan New-AzVirtualNetwork dengan konfigurasi subnet. Terakhir, buat alamat IP publik bernama myAGPublicIPAddress menggunakan New-AzPublicIpAddress. Sumber daya ini digunakan untuk menyediakan konektivitas jaringan ke gateway aplikasi dan sumber daya terkait.
$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
Membuat gateway aplikasi
Membuat konfigurasi IP dan port ujung depan
Kaitkan myAGSubnet yang sebelumnya Anda buat ke gateway aplikasi menggunakan New-AzApplicationGatewayIPConfiguration. Tetapkan myAGPublicIPAddress ke gateway aplikasi menggunakan New-AzApplicationGatewayFrontendIPConfig.
$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
Membuat kumpulan dan pengaturan backend
Buat kumpulan backend bernama appGatewayBackendPool untuk gateway aplikasi menggunakan New-AzApplicationGatewayBackendAddressPool. Konfigurasikan pengaturan untuk kumpulan backend menggunakan AzApplicationGatewayBackendHttpSettings-Baru.
$defaultPool = New-AzApplicationGatewayBackendAddressPool `
-Name appGatewayBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSettings `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 120
Membuat listener dan aturan default
Pendengar diperlukan untuk mengaktifkan gateway aplikasi untuk merutekan lalu lintas dengan tepat ke kumpulan ujung belakang. Dalam contoh ini, Anda akan membuat listener dasar yang mendengarkan lalu lintas HTTPS di URL root.
Buat objek sertifikat menggunakan New-AzApplicationGatewaySslCertificate, lalu buat listener bernama mydefaultListener menggunakan New-AzApplicationGatewayHttpListener dengan konfigurasi frontend, port frontend, dan sertifikat yang Anda buat sebelumnya. Aturan diperlukan agar listener mengetahui kumpulan backend yang akan digunakan untuk lalu lintas yang masuk. Buat aturan dasar bernama rule1 menggunakan New-AzApplicationGatewayRequestRoutingRule.
$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
Membuat gateway aplikasi dengan sertifikat
Setelah sumber daya pendukung yang diperlukan dibuat, tentukan parameter untuk gateway aplikasi bernama myAppGateway menggunakan New-AzApplicationGatewaySku, lalu buat gateway aplikasi itu menggunakan New-AzApplicationGateway dengan sertifikat.
Membuat application gateway
$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
Buat kumpulan skala komputer virtual
Dalam contoh ini, Anda akan membuat kumpulan skala komputer virtual yang menyediakan server untuk kumpulan backend di gateway aplikasi. Anda menetapkan rangkaian skala ke kumpulan backend saat mengonfigurasi pengaturan IP.
$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
Instal IIS
$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
Uji gateway aplikasi
Anda bisa menggunakan Get-AzPublicIPAddress untuk mendapatkan alamat IP publik gateway aplikasi. Salin alamat IP publik, lalu tempelkan ke bilah alamat browser Anda.
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress
Untuk menerima peringatan keamanan jika Anda menggunakan sertifikat yang ditandatangani sendiri, pilih Detail lalu Lanjutkan ke halaman web. Situs web IIS Anda yang aman kemudian akan ditampilkan seperti dalam contoh berikut:
Membersihkan sumber daya
Jika tidak lagi diperlukan, hapus grup sumber daya, gateway aplikasi, dan semua sumber daya terkait menggunakan Remove-AzResourceGroup.
Remove-AzResourceGroup -Name myResourceGroupAG
Langkah berikutnya
Membuat gateway aplikasi yang meng-hosting beberapa situs web