Skapa en programgateway med TLS-avslutning med hjälp av Azure CLI

Du kan använda Azure CLI för att skapa en programgateway med ett certifikat för TLS-avslutning. För serverdelsservrar kan du använda en VM-skalningsuppsättning. I det här exemplet innehåller skalningsuppsättningen två virtuella datorinstanser i serverdelens standardpool i programgatewayen.

I den här artikeln kan du se hur du:

  • Skapa ett självsignerat certifikat
  • Konfigurera ett nätverk
  • Skapa en programgateway med certifikatet
  • Skapa en vm-skalningsuppsättning med standardserverdelspoolen

Om du vill kan du slutföra den här proceduren med Hjälp av Azure PowerShell.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Förutsättningar

  • Den här självstudien kräver version 2.0.4 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.

Skapa ett självsignerat certifikat

I produktion bör du importera ett giltigt certifikat som är signerat av en betrodd provider. I den här artikeln skapar du ett självsignerat certifikat och en pfx-fil med hjälp av kommandot openssl.

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

Ange värden som passar ditt certifikat. Du kan acceptera standardvärdena.

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

Ange lösenordet för certifikatet. I det här exemplet används Azure123456! .

Skapa en resursgrupp

En resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. Skapa en resursgrupp med az group create.

I följande exempel skapas en resursgrupp med namnet myResourceGroupAG på platsen eastus.

az group create --name myResourceGroupAG --location eastus

Skapa nätverksresurser

Skapa ett virtuellt nätverk med namnet myVNet och ett undernät med namnet myAGSubnet med az network vnet create. Du kan sedan lägga till det undernät med namnet myBackendSubnet som behövs av serverdelsservrarna med az network vnet subnet create. Skapa den offentliga IP-adressen med namnet myAGPublicIPAddress med 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

Skapa programgatewayen

Du kan använda az network application-gateway create till att skapa programgatewayen. När du skapar en programgateway med hjälp av Azure CLI anger du konfigurationsinformation, till exempel kapacitet, sku och HTTP-inställningar.

Programgatewayen tilldelas till myAGSubnet och myAGPublicIPAddress som du skapade tidigare. I det här exemplet associerar du certifikatet du skapade och dess lösenord när du skapar programgatewayen.

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

Det kan ta flera minuter att skapa programgatewayen. När programgatewayen har skapats ser du de här nya funktionerna:

  • appGatewayBackendPool – en programgateway måste ha minst en serverdelsadresspool.
  • appGatewayBackendHttpSettings – anger att port 80 och ett HTTP-protokoll används för kommunikation.
  • appGatewayHttpListener – standardlyssnaren som är associerad med appGatewayBackendPool.
  • appGatewayFrontendIP – tilldelar myAGPublicIPAddress till appGatewayHttpListener.
  • regel 1 – standardroutningsregel som är associerad med appGatewayHttpListener.

Skapa en VM-skalningsuppsättning

I det här exemplet skapar du en vm-skalningsuppsättning som tillhandahåller servrar för standardserverdelspoolen i programgatewayen. De virtuella datorerna i skalningsuppsättningen är associerade med undernätet myBackendSubnet och appGatewayBackendPool. Du kan skapa skalningsuppsättningen med 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

Installera 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" }'

Testa programgatewayen

Du kan hämta den offentliga IP-adressen för programgatewayen med az network public-ip show.

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

Kopiera den offentliga IP-adressen och klistra in den i webbläsarens adressfält. I det här exemplet är URL:en https://52.170.203.149.

Secure warning

Om du använde ett självsignerat certifikat och vill acceptera säkerhetsvarningen väljer du Information och sedan Fortsätt till webbsidan. Din skyddade NGINX-webbplats visas sedan som i exemplet nedan:

Test base URL in application gateway

Rensa resurser

När du inte behöver dem längre tar du bort resursgruppen, programgatewayen och alla relaterade resurser.

az group delete --name myResourceGroupAG --location eastus

Nästa steg

Skapa en programgateway som är värd för flera webbplatser