Exercice - Configurer des pools de back-ends pour le chiffrement

Effectué

Vous voulez implémenter un chiffrement de bout en bout pour l’application shipping-portal. Le chiffrement de toutes les données entre les utilisateurs et les serveurs permet de garantir qu’aucun utilisateur non autorisé ne puisse intercepter et lire les données.

Dans cette unité, vous allez configurer l’application web et la passerelle d’application. Ensuite, vous créerez des certificats SSL auto-signés et activerez le chiffrement dans votre pool de back-ends pour contribuer à sécuriser le trafic entre la passerelle d’application et vos serveurs.

L’image suivante met en évidence les éléments que vous configurez dans cet exercice. Vous configurez une passerelle applicative en utilisant Azure Application Gateway v2.

Diagram that highlights the elements (backend pool, SSL certificate, and HTTP settings) created in this exercise.

Déployer une machine virtuelle et une passerelle d’application

  1. Ouvrez Azure Cloud Shell dans votre navigateur, puis connectez-vous à l’annuaire qui a accès à l’abonnement dans lequel vous voulez créer des ressources. Nous allons utiliser l’environnement du shell Bash pour cet exercice.

  2. Exécutez la commande suivante dans Cloud Shell pour créer un groupe de ressources pour vos ressources. Remplacez <resource group name> par le nom de votre groupe de ressources et <location> par la région Azure dans laquelle vous voulez déployer vos ressources.

    az group create --resource-group <resource group name> --location <location>
    
  3. Exécutez la commande suivante dans Cloud Shell pour créer une variable où stocker le nom de votre groupe de ressources :

    export rgName=<resource group name>
    
    
  4. Dans Azure Cloud Shell, exécutez la commande suivante pour télécharger le code source pour le portail d’expédition :

    git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
    
  5. Accédez au dossier shippingportal :

    cd shippingportal
    
  6. Exécutez le script d’installation suivant pour créer la machine virtuelle, les certificats et la passerelle d’application :

    bash setup-infra.sh
    

    Remarque

    L’exécution de ce script prend quelques minutes. Autorisez-le à traiter plusieurs processus pour décompresser et configurer la passerelle et les ressources. Assurez-vous que le processus s’est exécuté sans avertissement ni erreur.

Vérifier que le serveur web est correctement configuré

  1. Exécutez la commande suivante pour afficher l’URL du serveur web qu’a créé le script d’installation.

    echo https://"$(az vm show \
      --name webservervm1 \
      --resource-group $rgName \
      --show-details \
      --query [publicIps] \
      --output tsv)"
    
  2. Copiez et collez l’URL dans votre navigateur web, puis accédez à l’URL.

    Votre navigateur affichera probablement un message d’avertissement semblable à l’image suivante. Le contenu exact du message d’avertissement peut varier en fonction de votre navigateur. L’exemple d’image provient de Microsoft Edge.

    Screenshot of a warning about an unauthenticated server in Microsoft Edge.

    Cet avertissement se produit car le serveur web est configuré via un certificat auto-signé qui ne peut pas être authentifié. Dans cette page d’avertissement, recherchez et sélectionnez le lien pour accéder au site web ; par exemple, sélectionnez Accéder à la page web ou sélectionnez Avancé, puis Continuer, ou une option équivalente. Vous êtes alors redirigé vers la page d’accueil du portail d’expédition, comme illustré dans l’image suivante. Cet exemple d’application vérifie que le serveur est configuré correctement.

    Screenshot of the shipping portal home page Microsoft Edge.

Configurer le pool de back-ends pour le chiffrement

  1. Exécutez la commande suivante pour obtenir l’adresse  P privée de la machine virtuelle faisant office de serveur web.

    echo privateip="$(az vm list-ip-addresses \
      --resource-group $rgName \
      --name webservervm1 \
      --query "[0].virtualMachine.network.privateIpAddresses[0]" \
      --output tsv)"
    
  2. Créez une variable pour stocker votre adresse IP privée. Remplacez <privateIP> par l’adresse IP de l’étape précédente.

    export privateip=<privateIP>
    
    
  3. Configurez le pool de back-ends pour Application Gateway en utilisant l’adresse IP privée de la machine virtuelle.

    az network application-gateway address-pool create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name ap-backend \
      --servers $privateip
    
  4. Chargez le certificat de la machine virtuelle dans le pool de back-ends sur Application Gateway en tant que certificat racine approuvé. Le script d’installation a généré ce certificat et l’a stocké dans le fichier shipping-ssl.crt.

    az network application-gateway root-cert create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name shipping-root-cert \
      --cert-file server-config/shipping-ssl.crt
    
  5. Configurez les paramètres HTTP pour utiliser le certificat :

    az network application-gateway http-settings create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name https-settings \
      --port 443 \
      --protocol Https \
      --host-name $privateip
    
  6. Exécutez les commandes suivantes afin de définir le certificat approuvé pour le pool de back-ends sur le certificat installé sur la machine virtuelle de back-end :

    export rgID="$(az group show --name $rgName --query id --output tsv)"
    
    az network application-gateway http-settings update \
        --resource-group $rgName \
        --gateway-name gw-shipping \
        --name https-settings \
        --set trustedRootCertificates='[{"id": "'$rgID'/providers/Microsoft.Network/applicationGateways/gw-shipping/trustedRootCertificates/shipping-root-cert"}]'
    

Vous avez maintenant une machine virtuelle qui exécute le site du portail d’expédition et une passerelle d’application. Vous avez configuré le chiffrement SSL entre Application Gateway et votre serveur d’application.