Exercício – Configurar os pools de back-end para criptografia

Concluído

Você deseja implementar a criptografia de ponta a ponta no aplicativo do portal de remessas. A criptografia de todos os dados entre usuários e servidores ajuda a garantir que nenhum usuário não autorizado possa interceptar e ler os dados.

Nesta unidade, você vai configurar o aplicativo Web e o gateway de aplicativo. Em seguida, vai criar alguns certificados SSL autoassinados e habilitar a criptografia em seu pool de back-end para proteger o tráfego do gateway de aplicativo para seus servidores.

A imagem a seguir realça os elementos que você configura neste exercício. Você está configurando um gateway de aplicativo usando o Gateway de Aplicativo do Azure v2.

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

Implantar uma máquina virtual e o gateway de aplicativo

  1. Abra o Azure Cloud Shell em seu navegador e entre no diretório com acesso à assinatura na qual deseja criar recursos. Usaremos o ambiente do shell Bash neste exercício.

  2. Execute o comando a seguir no Cloud Shell para criar um grupo de recursos para seus recursos. Substitua <resource group name> pelo nome de seu grupo de recursos e <location> pela região do Azure na qual você gostaria de implantar seus recursos.

    az group create --resource-group <resource group name> --location <location>
    
  3. Execute o seguinte comando no Azure Cloud Shell para criar uma variável para armazenar o nome do grupo de recursos:

    export rgName=<resource group name>
    
    
  4. No Azure Cloud Shell, execute o seguinte comando para baixar o código-fonte do portal de remessa:

    git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
    
  5. Mova para a pasta shippingportal:

    cd shippingportal
    
  6. Execute o seguinte script de configuração para criar a máquina virtual, os certificados e o gateway de aplicativo:

    bash setup-infra.sh
    

    Observação

    O script leva vários minutos para ser concluído. Permita que ele trabalhe em vários processos para desempacotar e configurar o gateway e os recursos. Você verá que o processo foi bem-sucedido sem avisos nem erros.

Verifique se o servidor Web está configurado corretamente

  1. Execute o comando a seguir para exibir a URL do servidor Web que o script de instalação criou.

    echo https://"$(az vm show \
      --name webservervm1 \
      --resource-group $rgName \
      --show-details \
      --query [publicIps] \
      --output tsv)"
    
  2. Copie e cole a URL em seu navegador da Web e acesse a URL.

    Provavelmente, o navegador exibirá uma mensagem de aviso semelhante à imagem a seguir. O conteúdo exato da mensagem de aviso poderá variar, dependendo do navegador. A imagem de exemplo é do Microsoft Edge.

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

    Esse aviso ocorre porque o servidor Web é configurado usando um certificado autoassinado que não pode ser autenticado. Nessa página de aviso, procure e selecione o link para prosseguir para o site; por exemplo, selecione Acessar a página da Web ou selecione Avançado e, em seguida, Continuar, ou o equivalente. O resultado leva você à página inicial do portal de remessa, conforme mostrado na imagem a seguir. É um exemplo de aplicativo para testar se o servidor está configurado corretamente.

    Screenshot of the shipping portal home page Microsoft Edge.

Configurar o pool de back-end para criptografia

  1. Execute o comando a seguir para obter o endereço IP privado da máquina virtual que está atuando como o servidor Web.

    echo privateip="$(az vm list-ip-addresses \
      --resource-group $rgName \
      --name webservervm1 \
      --query "[0].virtualMachine.network.privateIpAddresses[0]" \
      --output tsv)"
    
  2. Crie uma variável para armazenar seu endereço IP privado. Substitua <privateIP> pelo endereço IP da etapa anterior.

    export privateip=<privateIP>
    
    
  3. Configure o pool de back-end para o Gateway de Aplicativo usando o endereço IP privado da máquina virtual.

    az network application-gateway address-pool create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name ap-backend \
      --servers $privateip
    
  4. Faça upload do certificado da VM no pool de back-end para o Gateway de Aplicativo como um certificado raiz confiável. O script de configuração gerou esse certificado e o armazenou no arquivo 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. Defina as configurações de HTTP para usar o certificado:

    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. Execute os seguintes comandos para definir o certificado confiável do pool de back-end para o certificado instalado na VM 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"}]'
    

Agora você tem uma máquina virtual executando o site de portal de envio e um gateway de aplicativo. Você configurou a criptografia SSL entre o Gateway de Aplicativo e o servidor de aplicativos.