Configurare un listener del gateway applicazione per la crittografia

Completato

È stata configurata la crittografia SSL per la connessione tra il gateway applicazione di Azure e i server nel pool back-end. Per il portale di spedizione è necessaria la crittografia end-to-end completa. A tale scopo, è necessario crittografare anche i messaggi inviati dal client al gateway applicazione.

Creare una porta front-end

Il gateway applicazione riceve le richieste attraverso una o più porte. Se la comunicazione con il gateway avviene tramite HTTPS, è necessario configurare una porta SSL. Per HTTPS viene solitamente usata la porta 443. Usare il comando az network application-gateway frontend-port create per creare una nuova porta front-end. L'esempio seguente illustra come creare una porta front-end per la porta 443:

az network application-gateway frontend-port create \
    --resource-group $rgName \
    --gateway-name gw-shipping  \
    --name my-https-port \
    --port 443

Configurare un listener

Il listener attende il traffico in ingresso nel gateway su una porta front-end specificata. Il traffico viene quindi indirizzato a un server nel pool back-end. Se la porta front-end usa SSL, è necessario indicare il certificato da usare per decrittografare i messaggi in arrivo. Il certificato include la chiave privata.

È possibile aggiungere il certificato usando il comando az network application-gateway ssl-cert create. Il file del certificato deve essere nel formato PFX. Poiché il file contiene la chiave privata, è probabile che sia protetto da password. Specificare la password nell'argomento cert-password, come illustrato nell'esempio seguente.

az network application-gateway ssl-cert create \
   --resource-group $rgName \
   --gateway-name gw-shipping \
   --name shipping-ssl.crt \
   --cert-file shippingportal/server-config/shipping-ssl.pfx \
   --cert-password <password for certificate file>

È quindi possibile creare il listener che riceve le richieste dalla porta front-end e ne esegue la decrittografia usando il certificato. Usare il comando az network application-gateway http-listener create.

az network application-gateway http-listener create \
    --resource-group $rgName \
    --gateway-name gw-shipping \
    --name http-listener \
    --frontend-port my-https-port \
    --ssl-cert shipping-ssl.crt

Definire una regola per inviare richieste HTTPS ai server

Il passaggio finale consiste nel creare una regola che indirizza i messaggi ricevuti tramite il listener ai server nel pool back-end. I messaggi ricevuti dalla porta front-end vengono decrittografati tramite il certificato SSL specificato per il listener. È necessario crittografare di nuovo i messaggi usando il certificato sul lato client per i server nel pool back-end. Queste informazioni vengono definite nella regola.

L'esempio seguente illustra come usare il comando az network application-gateway rule create per creare una regola che connette un listener a un pool back-end. Il parametro --http-settings specifica le impostazioni HTTP che fanno riferimento al certificato sul lato client per i server. Queste impostazioni sono state create nell'unità precedente.

az network application-gateway rule create \
    --resource-group $rgName \
    --gateway-name gw-shipping \
    --name app-gw-rule \
    --address-pool ap-backend \
    --http-listener http-listener \
    --http-settings https-settings \
    --rule-type Basic
    --priority 101

A questo punto è stata abilitata la crittografia end-to-end completa per i messaggi instradati tramite il gateway applicazione. I client usano il certificato SSL per il gateway applicazione per inviare messaggi. Il gateway applicazione decrittografa i messaggi usando questo certificato SSL. Quindi crittografa di nuovo i messaggi usando il certificato per i server nel pool back-end.