Bagikan melalui


Membuat gateway aplikasi dengan penghentian TLS menggunakan Azure CLI

Anda bisa menggunakan Azure CLI untuk membuat application gateway dengan sertifikat untuk penghentian TLS. Untuk server backend, Anda dapat menggunakan Virtual Machine Scale Set. 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 backend default

Jika berkenan, Anda dapat menyelesaikan prosedur ini menggunakan Azure PowerShell.

Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.

Prasyarat

  • Tutorial ini memerlukan Azure CLI versi 2.0.4 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.

Membuat sertifikat yang ditandatangani sendiri

Untuk penggunaan produksi, Anda harus mengimpor sertifikat yang valid dan ditandatangani oleh penyedia tepercaya. Untuk artikel ini, Anda membuat sertifikat yang ditandatangani sendiri dan file pfx menggunakan perintah openssl.

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out appgwcert.crt

Masukkan nilai yang Anda inginkan untuk sertifikat Anda. Anda dapat memakai nilai default.

openssl pkcs12 -export -out appgwcert.pfx -inkey privateKey.key -in appgwcert.crt

Masukkan kata sandi untuk sertifikat. Dalam contoh ini, Azure123456! sedang digunakan.

Buat grup sumber daya

Grup sumber daya adalah kontainer logis yang disebarkan dan dikelola oleh sumber daya Azure. Membuat grup sumber daya dengan menggunakan az group create.

Contoh berikut membuat grup sumber daya bernama myResourceGroupAG di lokasi eastus.

az group create --name myResourceGroupAG --location eastus

Membuat sumber daya jaringan

Buat jaringan virtual bernama myVNet dan subnet bernama myAGSubnet menggunakan az network vnet create. Anda kemudian dapat menambahkan subnet bernama myBackendSubnet yang diperlukan oleh server backend menggunakan az network vnet subnet create. Buat alamat IP publik bernama myAGPublicIPAddress menggunakan buat ip-publik jaringan az.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroupAG \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.0.1.0/24

az network vnet subnet create \
  --name myBackendSubnet \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet \
  --address-prefix 10.0.2.0/24

az network public-ip create \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard \
  --location eastus

Membuat application gateway

Anda bisa menggunakan az network application-gateway create untuk membuat application gateway. Saat Anda membuat gateway aplikasi menggunakan Azure CLI, Anda menentukan informasi konfigurasi, seperti pengaturan kapasitas, sku, dan HTTP.

Gateway aplikasi ditetapkan ke myAGSubnet dan myPublicIPAddress yang Anda buat sebelumnya. Dalam contoh ini, Anda mengaitkan sertifikat yang Anda buat dan kata sandinya saat Anda membuat application gateway.

az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroupAG \
  --vnet-name myVNet \
  --subnet myAGsubnet \
  --capacity 2 \
  --sku Standard_v2 \
  --http-settings-cookie-based-affinity Disabled \
  --frontend-port 443 \
  --http-settings-port 80 \
  --http-settings-protocol Http \
  --priority "1" \
  --public-ip-address myAGPublicIPAddress \
  --cert-file appgwcert.pfx \
  --cert-password "Azure123456!"

Mungkin perlu waktu beberapa menit untuk membuat gateway aplikasi. Setelah gateway aplikasi dibuat, Anda bisa melihat fitur baru ini:

  • appGatewayBackendPool - Gateway aplikasi harus memiliki setidaknya satu kumpulan alamat backend.
  • appGatewayBackendHttpSettings - Menentukan bahwa port 80 dan protokol HTTP digunakan untuk komunikasi.
  • appGatewayHttpListener - Listener default yang dikaitkan dengan appGatewayBackendPool.
  • appGatewayFrontendIP: Menetapkan myAGPublicIPAddress ke appGatewayHttpListener.
  • aturan1 - Aturan perutean default yang terkait dengan appGatewayHttpListener.

Membuat Set Skala Komputer Virtual

Dalam contoh ini, Anda membuat Set Skala Komputer Virtual yang menyediakan server untuk kumpulan backend default di gateway aplikasi. Komputer virtual dalam set skala dikaitkan dengan myBackendSubnet dan appGatewayBackendPool. Untuk membuat set skala, gunakan az vmss create.

az vmss create \
  --name myvmss \
  --resource-group myResourceGroupAG \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --admin-password Azure123456! \
  --instance-count 2 \
  --vnet-name myVNet \
  --subnet myBackendSubnet \
  --vm-sku Standard_DS2 \
  --upgrade-policy-mode Automatic \
  --app-gateway myAppGateway \
  --backend-pool-name appGatewayBackendPool

Memasang NGINX

az vmss extension set \
  --publisher Microsoft.Azure.Extensions \
  --version 2.0 \
  --name CustomScript \
  --resource-group myResourceGroupAG \
  --vmss-name myvmss \
  --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"],
  "commandToExecute": "./install_nginx.sh" }'

Uji gateway aplikasi

Untuk mendapatkan alamat IP publik gateway aplikasi, gunakan tampilkan ip publik jaringan az.

az network public-ip show \
  --resource-group myResourceGroupAG \
  --name myAGPublicIPAddress \
  --query [ipAddress] \
  --output tsv

Salin alamat IP publik, lalu tempelkan ke bilah alamat browser Anda. Untuk contoh ini, URL adalah: https://52.170.203.149.

Secure warning

Untuk menerima peringatan keamanan jika Anda menggunakan sertifikat yang ditandatangani sendiri, pilih Detail lalu Lanjutkan ke halaman web. Situs NGINX aman Anda kemudian ditampilkan seperti dalam contoh berikut:

Test base URL in application gateway

Membersihkan sumber daya

Jika tidak lagi diperlukan, hapus grup sumber daya, gateway aplikasi, dan semua sumber daya terkait.

az group delete --name myResourceGroupAG --location eastus

Langkah berikutnya

Membuat gateway aplikasi yang meng-hosting beberapa situs web