Configurare i pool back-end per la crittografia

Completato

Il pool back-end contiene i server che implementano l'applicazione. Il gateway applicazione di Azure instrada le richieste a questi server e può eseguire il bilanciamento del carico del traffico tra questi.

Nel portale di spedizione i server applicazioni nel pool back-end devono usare SSL per crittografare i dati che passano tra il gateway applicazione e i server nel pool back-end. Per crittografare i dati, il gateway applicazione usa un certificato SSL con una chiave pubblica. I server usano la chiave privata corrispondente per decrittografare i dati non appena li ricevono. In questa unità verrà illustrato come creare il pool back-end e installare i certificati necessari nel gateway applicazione. Questi certificati consentono di proteggere i messaggi inviati da e verso il pool back-end.

Crittografia dal gateway applicazione al pool back-end

Un pool back-end può fare riferimento a singole macchine virtuali, a un set di scalabilità di macchine virtuali, a indirizzi IP di computer reali (locali o in esecuzione in modalità remota) o a servizi ospitati tramite il servizio app di Azure. Tutti i server nel pool back-end devono essere configurati allo stesso modo, anche per le impostazioni di sicurezza.

Diagram showing how Application Gateway routes a request to a web server.

Se il traffico indirizzato al pool back-end è protetto tramite SSL, ogni server nel pool back-end deve presentare un certificato appropriato. A scopo di test, è possibile creare e usare un certificato autofirmato. In un ambiente di produzione è sempre necessario generare o acquistare un certificato che possa essere autenticato da un'autorità di certificazione (CA).

Attualmente sono disponibili due versioni del gateway applicazione: v1 e v2. Queste offrono funzionalità simili ma i dettagli di implementazione sono leggermente diversi. La versione v2 offre funzionalità aggiuntive e miglioramenti delle prestazioni.

Configurazione del certificato nel gateway applicazione v1

La versione v1 del gateway applicazione richiede l'installazione del certificato di autenticazione per i server nella configurazione del gateway. Questo certificato contiene la chiave pubblica che il gateway applicazione usa per crittografare i messaggi e autenticare i server. È possibile creare il certificato esportandolo dal server. Il server applicazioni usa la chiave privata corrispondente per decrittografare i messaggi. La chiave privata deve essere archiviata solo nei server applicazioni.

È possibile aggiungere un certificato di autenticazione al gateway applicazione usando il comando az network application-gateway auth-cert create dall'interfaccia della riga di comando di Azure. L'esempio seguente illustra la sintassi del comando. Il certificato deve essere in formato CER (Claim, Evidence, and Reasoning).

az network application-gateway auth-cert create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <certificate name> \
    --cert-file <path to authentication certificate>

Il gateway applicazione offre altri comandi che è possibile usare per elencare e gestire i certificati di autenticazione. Ad esempio:

  • Il comando az network application-gateway auth-cert list visualizza i certificati installati.
  • È possibile usare il comando az network application-gateway auth-cert update per modificare il certificato.
  • Il comando az network application-gateway auth-cert delete consente di rimuovere un certificato.

Configurazione del certificato nel gateway applicazione v2

La versione v2 del gateway applicazione ha requisiti di autenticazione leggermente diversi. Si specifica il certificato per l'autorità che ha eseguito l'autenticazione del certificato SSL per i server nel pool back-end. Aggiungere questo certificato come certificato radice trusted al gateway applicazione. Usare il comando az network application-gateway root-cert create dall'interfaccia della riga di comando di Azure.

az network application-gateway root-cert create \
      --resource-group <resource group name> \
      --gateway-name <application gateway name> \
      --name <certificate name> \
      --cert-file <path to trusted CA certificate>

Se i server usano un certificato autofirmato, aggiungere il certificato come certificato radice trusted nel gateway applicazione.

Impostazioni HTTP

Il gateway applicazione usa una regola per specificare come indirizzare i messaggi ricevuti sulla porta in ingresso ai server nel pool back-end. Se i server usano SSL, è necessario configurare la regola in modo che indichi:

  • I server ricevono il traffico tramite il protocollo HTTPS.
  • Il certificato da usare per crittografare il traffico e autenticare la connessione a un server.

Per definire queste informazioni di configurazione, usare un'impostazione HTTP.

È possibile definire l'impostazione HTTP tramite il comando az network application-gateway http-settings create nell'interfaccia della riga di comando di Azure. L'esempio seguente illustra la sintassi per la creazione di un'impostazione che instrada il traffico usando il protocollo HTTPS sulla porta 443 nei server nel pool back-end. Se si usa il gateway applicazione v1, il parametro --auth-certs è il nome del certificato di autenticazione aggiunto in precedenza al gateway applicazione.

az network application-gateway http-settings create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <HTTPS settings name> \
    --port 443 \
    --protocol Https \
    --auth-certs <certificate name>

Se si usa il gateway applicazione v2, omettere il parametro --auth-certs. Il gateway applicazione contatta il server back-end e verifica l'autenticità del certificato presentato dal server in base alle autorità di certificazione (CA) specificate da un elenco di certificati radice trusted. Se non viene trovata alcuna corrispondenza, il gateway applicazione non si connette al server back-end e viene visualizzato un errore HTTP 502 (Gateway non valido).