Tworzenie bramy aplikacji z zakończeniem szyfrowania TLS przy użyciu interfejsu wiersza polecenia platformy Azure

Za pomocą interfejsu wiersza polecenia platformy Azure można utworzyć bramę aplikacji z certyfikatem na potrzeby kończenia żądań protokołu TLS. W przypadku serwerów zaplecza można użyć zestawu skalowania maszyn wirtualnych. W tym przykładzie zestaw skalowania zawiera dwa wystąpienia maszyny wirtualnej, które są dodawane do domyślnej puli zaplecza bramy aplikacji.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Tworzenie certyfikatu z podpisem własnym
  • Konfigurowanie sieci
  • Tworzenie bramy aplikacji z certyfikatem
  • Tworzenie zestawu skalowania maszyn wirtualnych z domyślną pulą zaplecza

Jeśli wolisz, możesz wykonać tę procedurę przy użyciu programu Azure PowerShell.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

  • Ten samouczek wymaga wersji 2.0.4 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

Tworzenie certyfikatu z podpisem własnym

Do użycia w środowisku produkcyjnym należy zaimportować prawidłowy certyfikat podpisany przez zaufanego dostawcę. W tym artykule utworzysz certyfikat z podpisem własnym i plik pfx przy użyciu polecenia openssl.

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

Wprowadź wartości odpowiednie dla Twojego certyfikatu. Możesz zaakceptować wartości domyślne.

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

Wprowadź hasło certyfikatu. W tym przykładzie jest używana usługa Azure123456!

Tworzenie grupy zasobów

Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. Utwórz grupę zasobów za pomocą polecenia az group create.

W poniższym przykładzie pokazano sposób tworzenia grupy zasobów o nazwie myResourceGroupAG w lokalizacji eastus.

az group create --name myResourceGroupAG --location eastus

Tworzenie zasobów sieciowych

Utwórz sieć wirtualną o nazwie myVNet i podsieć o nazwie myAGSubnet przy użyciu polecenia az network vnet create. Następnie możesz dodać podsieć o nazwie myBackendSubnet wymagane przez serwery zaplecza przy użyciu polecenia az network vnet subnet create. Utwórz publiczny adres IP o nazwie myAGPublicIPAddress przy użyciu polecenia az network public-ip create.

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

Tworzenie bramy aplikacji

Aby utworzyć bramę aplikacji, możesz użyć polecenia az network application-gateway create. Podczas tworzenia bramy aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure należy podać informacje o konfiguracji, takie jak pojemność, jednostka SKU i ustawienia protokołu HTTP.

Brama aplikacji jest przypisywana do wcześniej utworzonej podsieci myAGSubnet i adresu myAGPublicIPAddress. W tym przykładzie podczas tworzenia bramy aplikacji należy skojarzyć utworzony certyfikat i jego hasło.

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!"

Tworzenie bramy aplikacji może potrwać kilka minut. Po utworzeniu bramy aplikacji możesz zauważyć następujące nowe funkcje:

  • appGatewayBackendPool — brama aplikacji musi mieć co najmniej jedną pulę adresów zaplecza.
  • appGatewayBackendHttpSettings — określa, że port 80 i protokół HTTP są używane do komunikacji.
  • appGatewayHttpListener — domyślny odbiornik skojarzony z pulą appGatewayBackendPool.
  • appGatewayFrontendIP — przypisuje adres myAGPublicIPAddress do odbiornika appGatewayHttpListener.
  • rule1 — domyślna reguła routingu skojarzona z odbiornikiem appGatewayHttpListener.

Tworzenie zestawu skalowania maszyn wirtualnych

W tym przykładzie utworzysz zestaw skalowania maszyn wirtualnych, który udostępnia serwery domyślnej puli zaplecza w bramie aplikacji. Maszyny wirtualne w zestawie skalowania są kojarzone z podsiecią myBackendSubnet i pulą appGatewayBackendPool. Aby utworzyć zestaw skalowania, możesz użyć polecenia 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

Instalowanie serwera 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" }'

Testowanie bramy aplikacji

Aby uzyskać publiczny adres IP bramy aplikacji, możesz użyć polecenia az network public-ip show.

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

Skopiuj publiczny adres IP, a następnie wklej go na pasku adresu przeglądarki. W tym przykładzie adres URL to: https://52.170.203.149.

Secure warning

Aby zaakceptować ostrzeżenie o zabezpieczeniach, jeśli używasz certyfikatu z podpisem własnym, wybierz pozycję Szczegóły, a następnie pozycję Przejdź do strony internetowej. Zostanie wyświetlona zabezpieczona witryna serwera NGINX, tak jak w poniższym przykładzie:

Test base URL in application gateway

Czyszczenie zasobów

Gdy grupa zasobów, brama aplikacji i wszystkie pokrewne zasoby nie będą już potrzebne, można je usunąć.

az group delete --name myResourceGroupAG --location eastus

Następne kroki

Tworzenie bramy aplikacji hostującej wiele witryn internetowych