Buat gateway aplikasi dengan pengalihan HTTP ke HTTPS menggunakan Azure CLI

Anda bisa menggunakan Azure CLI untuk membuat gateway aplikasi dengan sertifikat untuk penghentian TLS/SSL. Aturan perutean digunakan untuk mengalihkan lalu lintas HTTP ke port HTTPS di gateway aplikasi Anda. Dalam contoh ini, Anda juga membuat Virtual Machine Scale Set untuk kumpulan backend gateway aplikasi yang berisi dua instans komputer virtual.

Dalam artikel ini, Anda akan mempelajari cara:

  • Membuat sertifikat yang ditandatangani sendiri
  • Menyiapkan jaringan
  • Membuat gateway aplikasi dengan sertifikat
  • Menambahkan listener dan aturan pengalihan
  • Membuat Set Skala Komputer Virtual dengan kumpulan backend default

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 valid yang ditandatangani oleh penyedia tepercaya. Untuk tutorial 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

Membuat application gateway

Gunakan buat gateway-aplikasi jaringan az untuk membuat gateway aplikasi bernama myAppGateway. 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_Medium \
  --http-settings-cookie-based-affinity Disabled \
  --frontend-port 443 \
  --http-settings-port 80 \
  --http-settings-protocol Http \
  --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.

Menambahkan listener dan aturan pengalihan

Menambahkan port HTTP

Gunakan buat port frontend gateway aplikasi jaringan az untuk menambahkan port HTTP ke gateway aplikasi.

az network application-gateway frontend-port create \
  --port 80 \
  --gateway-name myAppGateway \
  --resource-group myResourceGroupAG \
  --name httpPort

Menambahkan listener HTTP

Gunakan buat http pendengar gateway aplikasi jaringan az untuk menambahkan listener bernama myListener ke gateway aplikasi.

az network application-gateway http-listener create \
  --name myListener \
  --frontend-ip appGatewayFrontendIP \
  --frontend-port httpPort \
  --resource-group myResourceGroupAG \
  --gateway-name myAppGateway

Menambahkan konfigurasi pengalihan

Tambahkan konfigurasi pengalihan HTTP ke HTTPS ke gateway aplikasi menggunakan buat konfigurasi pengalihan gateway aplikasi jaringan az .

az network application-gateway redirect-config create \
  --name httpToHttps \
  --gateway-name myAppGateway \
  --resource-group myResourceGroupAG \
  --type Permanent \
  --target-listener appGatewayHttpListener \
  --include-path true \
  --include-query-string true

Menambahkan aturan perutean

Tambahkan aturan perutean bernama aturan2 dengan konfigurasi pengalihan ke gateway aplikasi menggunakan buat aturan gateway aplikasi jaringan az.

az network application-gateway rule create \
  --gateway-name myAppGateway \
  --name rule2 \
  --resource-group myResourceGroupAG \
  --http-listener myListener \
  --rule-type Basic \
  --redirect-config httpToHttps

Membuat Set Skala Komputer Virtual

Dalam contoh ini, Anda membuat Set Skala Komputer Virtual bernama myvmss yang menyediakan server untuk kumpulan backend 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. Salin alamat IP publik, lalu tempelkan ke bilah alamat browser Anda.

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

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

Langkah berikutnya