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

Concluído

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

Nesta unidade, irá configurar a aplicação Web e o gateway de aplicação. Em seguida, irá criar alguns certificados SSL autoassinados e ativar a encriptação no seu conjunto de back-end para ajudar a proteger o tráfego proveniente do gateway de aplicação para os seus servidores.

A imagem a seguir destaca os elementos configurados 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.

Implementar uma máquina virtual e um gateway de aplicação

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

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

    az group create --resource-group <resource group name> --location <location>
    
  3. Execute o seguinte comando no 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. Mover para a pasta shippingportal :

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

    bash setup-infra.sh
    

    Nota

    Este script leva vários minutos para ser concluído. Permita que ele trabalhe através de vários processos para descompactar e configurar o gateway e os recursos. Você deve ver que o processo foi bem-sucedido com zero avisos e zero erros.

Verificar se o servidor Web está configurado corretamente

  1. Execute o seguinte comando para apresentar o URL do servidor Web que o script de configuração criou.

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

    Seu navegador provavelmente exibirá uma mensagem de aviso semelhante à imagem a seguir. O conteúdo exato da mensagem de aviso pode variar, dependendo do seu navegador. A imagem de exemplo é do Microsoft Edge.

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

    Este aviso é apresentado porque o servidor Web é configurado através de um certificado autoassinado que não pode ser autenticado. Nesta página de aviso, procure e selecione o link para prosseguir para o site; por exemplo, selecione Ir para a página da Web ou selecione Avançado e, em seguida, Continuar, ou equivalente. O resultado leva você para a página inicial do portal de envio, como mostra a imagem a seguir. É um aplicativo de exemplo para testar se o servidor está configurado corretamente.

    Screenshot of the shipping portal home page Microsoft Edge.

Configurar o conjunto de back-end para encriptação

  1. Execute o seguinte comando para obter o endereço IP privado da máquina virtual que está a funcionar como 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 o 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 Application Gateway 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. Carregue o certificado de VM no pool de back-end para o Application Gateway como um certificado raiz confiável. O script de instalaçã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. Configure as configurações 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 para o 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 tem uma máquina virtual a executar o site do portal de encomendas e um gateway de aplicação. Configurou a encriptação SSL entre o Gateway de Aplicação e o seu servidor de aplicações.