Erstellen eines Anwendungsgateways mit Umleitung von HTTP zu HTTPS über die Azure-Befehlszeilenschnittstelle

Sie können die Azure CLI verwenden, um ein Anwendungsgateway mit einem Zertifikat für die TLS/SSL-Terminierung zu erstellen. Zum Umleiten des HTTP-Datenverkehrs an den HTTPS-Port in Ihrem Anwendungsgateway wird eine Routingregel verwendet. In diesem Beispiel erstellen Sie auch eine VM-Skalierungsgruppe für den Back-End-Pool des Anwendungsgateways, die zwei virtuelle Computerinstanzen enthält.

In diesem Artikel werden folgende Vorgehensweisen behandelt:

  • Erstellen eines selbstsignierten Zertifikats
  • Einrichten eines Netzwerks
  • Erstellen eines Anwendungsgateways mit dem Zertifikat
  • Hinzufügen eines Listeners und einer Umleitungsregel
  • Erstellen einer VM-Skalierungsgruppe mit dem standardmäßigen Back-End-Pool

Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.

Voraussetzungen

  • Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.

  • Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.

    • Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

    • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.

    • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.

  • Für dieses Tutorial ist mindestens Version 2.0.4 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.

Erstellen eines selbstsignierten Zertifikats

Für den Einsatz in einer Produktionsumgebung sollten Sie ein gültiges, von einem vertrauenswürdigen Anbieter signiertes Zertifikat importieren. Für dieses Tutorial erstellen Sie mit dem openssl-Befehl ein selbstsigniertes Zertifikat und eine PFX-Datei.

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

Geben Sie Werte ein, die für Ihr Zertifikat sinnvoll sind. Sie können die Standardwerte übernehmen.

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

Geben Sie das Kennwort für das Zertifikat ein. In diesem Beispiel wird Azure123456! verwendet.

Erstellen einer Ressourcengruppe

Eine Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Erstellen Sie mit az group create eine Ressourcengruppe.

Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroupAG am Standort eastus erstellt.

az group create --name myResourceGroupAG --location eastus

Erstellen von Netzwerkressourcen

Erstellen Sie mit az network vnet create ein virtuelles Netzwerk namens myVNet und ein Subnetz namens myAGSubnet. Dann können Sie mit az network vnet subnet create das Subnetz namens myBackendSubnet hinzufügen, das von den Back-End-Servern benötigt wird. Erstellen Sie mit az network public-ip create eine öffentliche IP-Adresse namens myAGPublicIPAddress.

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

Erstellen des Anwendungsgateways

Sie können az network application-gateway create verwenden, um ein Anwendungsgateway namens myAppGateway zu erstellen. Wenn Sie über die Azure-Befehlszeilenschnittstelle ein Anwendungsgateway erstellen, geben Sie Konfigurationsinformationen wie Kapazität, SKU und HTTP-Einstellungen an.

Das Anwendungsgateway wird dem Subnetz myAGSubnet und der IP-Adresse myAGPublicIPAddress zugewiesen, das bzw. die Sie zuvor erstellt haben. In diesem Beispiel ordnen Sie das erstellte Zertifikat und das zugehörige Kennwort zu, wenn Sie das Anwendungsgateway erstellen.

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

Es kann einige Minuten dauern, bis das Anwendungsgateway erstellt wird. Nachdem das Anwendungsgateway erstellt wurde, sehen Sie diese neuen Features:

  • appGatewayBackendPool: Ein Anwendungsgateway muss über mindestens einen Back-End-Adresspool verfügen.
  • appGatewayBackendHttpSettings: Gibt an, dass zur Kommunikation Port 80 und ein HTTP-Protokoll verwendet werden.
  • appGatewayHttpListener: Der Standardlistener, der appGatewayBackendPool zugeordnet ist.
  • appGatewayFrontendIP: Hiermit wird myAGPublicIPAddress zu appGatewayHttpListener zugewiesen.
  • rule1:Die Standardroutingregel, die appGatewayHttpListener zugeordnet ist.

Hinzufügen eines Listeners und einer Umleitungsregel

Hinzufügen des HTTP-Ports

Sie können az network application-gateway frontend-port create verwenden, um den HTTP-Port zum Anwendungsgateway hinzuzufügen.

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

Hinzufügen des HTTP-Listeners

Sie können az network application-gateway http-listener create verwenden, um den Listener namens myListener zum Anwendungsgateway hinzuzufügen.

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

Hinzufügen der Umleitungskonfiguration

Fügen Sie dem Anwendungsgateway mit az network application-gateway redirect-config create die Konfiguration für die Umleitung von HTTP zu HTTPS hinzu.

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

Hinzufügen der Routingregel

Fügen Sie dem Anwendungsgateway mit az network application-gateway rule create die Routingregel namens rule2 mit der Umleitungskonfiguration hinzu.

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

Erstellen einer VM-Skalierungsgruppe

In diesem Beispiel erstellen Sie eine VM-Skalierungsgruppe mit dem Namen myvmss, die Server für den Back-End-Pool im Anwendungsgateway bereitstellt. Die virtuellen Computer in der Skalierungsgruppe sind myBackendSubnet und appGatewayBackendPool zugeordnet. Zum Erstellen der Skalierungsgruppe können Sie az vmss create verwenden.

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

Installieren von 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" }'

Testen des Anwendungsgateways

Um die öffentliche IP-Adresse des Anwendungsgateways abzurufen, können Sie az network public-ip show verwenden. Kopieren Sie die öffentliche IP-Adresse, und fügen Sie sie in die Adressleiste des Browsers ein.

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

Secure warning

Wenn Sie ein selbstsigniertes Zertifikat verwendet haben und die Sicherheitswarnung akzeptieren möchten, klicken Sie auf Details und anschließend auf Webseite trotzdem laden. Die gesicherte NGINX-Website wird dann wie im folgenden Beispiel angezeigt:

Test base URL in application gateway

Nächste Schritte