Exercício – Configurar os pools de back-end para criptografia
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.
Implantar uma máquina virtual e o gateway de aplicativo
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.
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>
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>
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
Mova para a pasta shippingportal:
cd shippingportal
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
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)"
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.
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.
Configurar o pool de back-end para criptografia
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)"
Crie uma variável para armazenar seu endereço IP privado. Substitua
<privateIP>
pelo endereço IP da etapa anterior.export privateip=<privateIP>
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
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
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
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.