Erstellen eines Anwendungsgateways mit TLS-Terminierung mithilfe der Azure CLI
Sie können die Azure CLI verwenden, um ein Anwendungsgateway mit einem Zertifikat für die TLS-Terminierung zu erstellen. Für Back-End-Server können Sie eine VM-Skalierungsgruppe verwenden. In diesem Beispiel enthält die Skalierungsgruppe zwei VM-Instanzen, die zum standardmäßigen Back-End-Pool des Anwendungsgateways hinzugefügt werden.
In diesem Artikel werden folgende Vorgehensweisen behandelt:
- Erstellen eines selbstsignierten Zertifikats
- Einrichten eines Netzwerks
- Erstellen eines Anwendungsgateways mit dem Zertifikat
- Erstellen einer VM-Skalierungsgruppe mit dem standardmäßigen Back-End-Pool
Sie können für dieses Verfahren auch Azure PowerShell verwenden.
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 die Produktion sollten Sie ein gültiges, von einem vertrauenswürdigen Anbieter signiertes Zertifikat importieren. Für diesen Artikel 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 \
--allocation-method Static \
--sku Standard \
--location eastus
Erstellen des Anwendungsgateways
Sie können az network application-gateway create verwenden, um das Anwendungsgateway 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_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!"
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.
Erstellen einer VM-Skalierungsgruppe
In diesem Beispiel erstellen Sie eine VM-Skalierungsgruppe, die Server für den standardmäßigen 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.
az network public-ip show \
--resource-group myResourceGroupAG \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv
Kopieren Sie die öffentliche IP-Adresse, und fügen Sie sie in die Adressleiste des Browsers ein. In diesem Beispiel lautet die URL https://52.170.203.149.
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:
Bereinigen von Ressourcen
Entfernen Sie die Ressourcengruppe, das Anwendungsgateway und alle dazugehörigen Ressourcen, wenn Sie sie nicht mehr benötigen.
az group delete --name myResourceGroupAG --location eastus
Nächste Schritte
Erstellen eines Anwendungsgateways als Host für mehrere Websites