Esercizio - Configurare pool back-end per la crittografia

Completato

Si vuole implementare la crittografia end-to-end per l'applicazione del portale di spedizione. La crittografia di tutti i dati tra utenti e server contribuisce a garantire che nessun utente non autorizzato possa intercettare e leggere i dati.

In questa unità verranno configurati l'applicazione Web e il gateway applicazione. Successivamente si creeranno alcuni certificati SSL autofirmati e si abiliterà la crittografia nel pool back-end per contribuire alla protezione del traffico dal gateway applicazione ai server.

L'immagine seguente evidenzia gli elementi che vengono configurati in questo esercizio. Si imposterà un gateway applicazione usando il gateway applicazione di Azure v2.

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

Distribuire una macchina virtuale e un gateway applicazione

  1. Aprire Azure Cloud Shell nel browser e accedere alla directory con accesso alla sottoscrizione in cui si vogliono creare le risorse. Per questo esercizio viene usato l'ambiente di shell Bash.

  2. Eseguire il comando seguente in Cloud Shell per creare un gruppo di risorse per le proprie risorse. Sostituire <resource group name> con un nome per il gruppo di risorse e <location> con l'area di Azure in cui si vogliono distribuire le risorse.

    az group create --resource-group <resource group name> --location <location>
    
  3. Eseguire il comando seguente in Cloud Shell per creare una variabile per archiviare il nome del gruppo di risorse:

    export rgName=<resource group name>
    
    
  4. In Azure Cloud Shell eseguire il comando seguente per scaricare il codice sorgente per il portale di spedizione:

    git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
    
  5. Passare alla cartella shippingportal:

    cd shippingportal
    
  6. Eseguire lo script di configurazione seguente per creare la macchina virtuale, i certificati e il gateway applicazione:

    bash setup-infra.sh
    

    Nota

    Il completamento dello script richiede alcuni minuti. Consentire allo script di eseguire più processi per decomprimere e configurare il gateway e le risorse. Il processo dovrebbe essere completato con zero avvisi e zero errori.

Verificare che il server Web sia configurato correttamente

  1. Eseguire il comando seguente per visualizzare l'URL del server Web creato dallo script di configurazione.

    echo https://"$(az vm show \
      --name webservervm1 \
      --resource-group $rgName \
      --show-details \
      --query [publicIps] \
      --output tsv)"
    
  2. Copiare e incollare l'URL nel Web browser e passare all'URL.

    Il browser visualizzerà molto probabilmente un messaggio di avviso simile all'immagine seguente. Il contenuto esatto del messaggio di avviso può variare a seconda del browser usato. L'immagine di esempio proviene da Microsoft Edge.

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

    Questo avviso viene visualizzato perché il server Web è stato configurato tramite un certificato autofirmato che non può essere autenticato. In questa pagina di avviso cercare e selezionare il collegamento per passare al sito Web. Ad esempio, selezionare Vai alla pagina Web o selezionare Avanzate e quindi Procedi o i comandi equivalenti. Il risultato conduce alla home page per il portale di spedizione, come illustrato nell'immagine seguente. Si tratta di un'app di esempio per verificare che il server sia configurato correttamente.

    Screenshot of the shipping portal home page Microsoft Edge.

Configurare il pool back-end per la crittografia

  1. Eseguire il comando seguente per ottenere l'indirizzo IP privato della macchina virtuale che svolge la funzione di server Web.

    echo privateip="$(az vm list-ip-addresses \
      --resource-group $rgName \
      --name webservervm1 \
      --query "[0].virtualMachine.network.privateIpAddresses[0]" \
      --output tsv)"
    
  2. Creare una variabile per archiviare l'indirizzo IP privato. Sostituire <privateIP> con l'indirizzo IP del passaggio precedente.

    export privateip=<privateIP>
    
    
  3. Configurare il pool back-end per il gateway applicazione usando l'indirizzo IP privato della macchina virtuale.

    az network application-gateway address-pool create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name ap-backend \
      --servers $privateip
    
  4. Caricare il certificato della macchina virtuale nel pool back-end nel gateway applicazione come certificato radice trusted. Lo script di installazione ha generato questo certificato e lo ha archiviato nel file 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. Configurare le impostazioni HTTP per l'uso del certificato:

    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. Eseguire i comandi seguenti per impostare il certificato trusted per il pool back-end sul certificato installato nella macchina virtuale 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"}]'
    

È ora disponibile una macchina virtuale che esegue il sito del portale di spedizione e un gateway applicazione. È stata configurata la crittografia SSL tra il gateway applicazione e il server applicazioni.