Créer une passerelle d’application avec redirection de HTTP vers HTTPS à l’aide d’Azure CLI

Vous pouvez utiliser Azure CLI pour créer une passerelle d'application avec un certificat pour l'arrêt TLS/SSL. Une règle de routage est utilisée pour rediriger le trafic HTTP vers le port HTTPS dans votre passerelle d’application. Dans cet exemple, vous créez également un groupe de machines virtuelles identiques pour le pool backend de la passerelle d’application qui contient deux instances de machine virtuelle.

Dans cet article, vous apprendrez comment :

  • Créer un certificat auto-signé
  • Configurer un réseau
  • Créer une passerelle d’application avec le certificat
  • Ajouter un écouteur et une règle de redirection
  • Créer un groupe de machines virtuelles identiques avec le pool de backend par défaut

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

  • Cet tutoriel nécessite la version 2.0.4 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.

Créer un certificat auto-signé

Dans un environnement de production, vous devez importer un certificat valide signé par un fournisseur approuvé. Pour ce didacticiel, vous créez un certificat auto-signé et un fichier pfx à l’aide de la commande openssl.

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

Entrez les valeurs pertinentes pour votre certificat. Vous pouvez accepter les valeurs par défaut.

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

Entrez le mot de passe du certificat. Dans cet exemple, Azure123456 ! est utilisé.

Créer un groupe de ressources

Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Créez un groupe de ressources à l’aide de la commande az group create.

L’exemple suivant crée un groupe de ressources nommé myResourceGroupAG à l’emplacement eastus.

az group create --name myResourceGroupAG --location eastus

Créer des ressources réseau

Créez le réseau virtuel nommé myVNet et le sous-réseau nommé myAGSubnet à l’aide de la commande az network vnet create. Vous pouvez ensuite ajouter le sous-réseau nommé myBackendSubnet nécessaire aux serveurs principaux à l’aide de la commande az network vnet subnet create. Créez l’adresse IP publique nommée myAGPublicIPAddress à l’aide de la commande 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

Créer la passerelle Application Gateway

Vous pouvez utiliser la commande az network application-gateway create pour créer la passerelle d’application nommée myAppGateway. Quand vous créez une passerelle d’application avec Azure CLI, vous spécifiez des informations de configuration, telles que la capacité, la référence SKU et les paramètres HTTP.

La passerelle d’application est affectée à myAGSubnet et à myAGPublicIPAddress, que vous avez créés. Dans cet exemple, vous associez le certificat que vous avez créé et son mot de passe lorsque vous créez la passerelle d’application.

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

La création de la passerelle d’application peut prendre plusieurs minutes. Une fois la passerelle d’application créée, vous pouvez voir ses nouvelles fonctionnalités suivantes :

  • appGatewayBackendPool : une passerelle d’application doit avoir au moins un pool d’adresses backend.
  • appGatewayBackendHttpSettings : spécifie que le port 80 et le protocole HTTP sont utilisés pour la communication.
  • appGatewayHttpListener : écouteur par défaut associé à appGatewayBackendPool.
  • appGatewayFrontendIP - assigne myAGPublicIPAddress à appGatewayHttpListener.
  • rule1 : règle de routage par défaut associée à appGatewayHttpListener.

Ajouter un écouteur et une règle de redirection

Ajouter le port HTTP

Vous pouvez utiliser l’applet de commandeaz network application-gateway frontend-port create pour ajouter le port HTTP à la passerelle d’application.

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

Ajouter l’écouteur HTTP

Vous pouvez utiliser l’applet de commandeaz network application-gateway http-listener create pour ajouter l’écouteur nommé myListener à la passerelle d’application.

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

Ajouter la configuration de redirection

Ajoutez la configuration de redirection de HTTP vers HTTPS à la passerelle d’application en utilisant l’applet de commande az network application-gateway redirect-config create.

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

Ajouter la règle de routage

Ajoutez la règle de routage rule2 avec la configuration de redirection à la passerelle d’application en utilisant l’applet de commande az network application-gateway rule create.

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

Crée un groupe de machines virtuelles identiques

Dans cet exemple, vous créez un groupe de machines virtuelles identiques nommé myvmss qui fournit des serveurs pour le pool principal dans la passerelle d’application. Les machines virtuelles dans le groupe identique sont associées à myBackendSubnet et appGatewayBackendPool. Pour créer le groupe identique, vous pouvez utiliser la commande 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

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

Tester la passerelle d’application

Pour obtenir l’adresse IP publique de la passerelle d’application, vous pouvez utiliser la commande az network public-ip show. Copiez l’adresse IP publique, puis collez-la dans la barre d’adresses de votre navigateur.

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

Avertissement de sécurité

Pour accepter l’avertissement de sécurité si vous avez utilisé un certificat auto-signé, sélectionnez Détails, puis Atteindre la page web. Votre site NGINX sécurisé apparaît maintenant comme dans l’exemple suivant :

Tester l’URL de base dans la passerelle d’application

Étapes suivantes