Ejercicio: Configuración de grupos de back-end para el cifrado

Completado

Quiere implementar el cifrado de un extremo a otro para la aplicación del portal de envíos. Cifrar todos los datos entre los usuarios y los servidores ayudará a garantizar que ningún usuario no autorizado puede interceptar y leer los datos.

En esta unidad, configurará la aplicación web y la puerta de enlace de aplicaciones. Después creará algunos certificados SSL autofirmados y habilitará el cifrado de su grupo de back-end para ayudar a proteger el tráfico desde la puerta de enlace de aplicaciones a los servidores.

En la imagen siguiente se resaltan los elementos que configurará en este ejercicio. Configurará una puerta de enlace de aplicaciones mediante Azure Application Gateway v2.

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

Implementación de una máquina virtual y una puerta de enlace de aplicaciones

  1. Abra Azure Cloud Shell en el explorador e inicie sesión en el directorio con acceso a la suscripción en la que quiera crear los recursos. En este ejercicio, se usa el entorno de shell de Bash.

  2. Ejecute el comando siguiente en Cloud Shell para crear un grupo de recursos para los recursos. Reemplace <resource group name> por un nombre para el grupo de recursos y <location> por la región de Azure en la que quiera implementar los recursos.

    az group create --resource-group <resource group name> --location <location>
    
  3. Ejecute el comando siguiente en Cloud Shell para crear una variable a fin de almacenar el nombre del grupo de recursos:

    export rgName=<resource group name>
    
    
  4. En Azure Cloud Shell, ejecute el siguiente comando para descargar el código fuente para el portal de envío:

    git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
    
  5. Vaya a la carpeta shippingportal:

    cd shippingportal
    
  6. Ejecute el siguiente script de configuración para crear la máquina virtual, los certificados y la puerta de enlace de aplicación:

    bash setup-infra.sh
    

    Nota:

    Este script tarda varios minutos en completarse. Permita que funcione entre varios procesos para desempaquetar y configurar la puerta de enlace y los recursos. Debería ver que el proceso ha finalizado correctamente sin advertencias ni errores.

Comprobación de que el servidor web se ha configurado correctamente

  1. Ejecute el siguiente comando para mostrar la dirección URL del servidor web que creó el script de configuración.

    echo https://"$(az vm show \
      --name webservervm1 \
      --resource-group $rgName \
      --show-details \
      --query [publicIps] \
      --output tsv)"
    
  2. Copie y pegue la dirección URL en el explorador web y vaya a la dirección URL.

    Lo más probable es que el explorador muestre un mensaje de advertencia similar a la siguiente imagen. El contenido exacto del mensaje de advertencia puede variar en función del explorador. La imagen de ejemplo es de Microsoft Edge.

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

    Esta advertencia se produce porque el servidor web está configurado mediante un certificado autofirmado que no se puede autenticar. En esta página de advertencia, busque y seleccione el vínculo para continuar con el sitio web; por ejemplo, seleccione Ir a la página web o seleccione Opciones avanzadas y después Continuar, o bien una opción equivalente. El resultado le llevará a la página principal del portal de envíos, como se muestra en la imagen siguiente. Es una aplicación de ejemplo para probar que el servidor está configurado correctamente.

    Screenshot of the shipping portal home page Microsoft Edge.

Configuración del grupo de back-end para el cifrado

  1. Ejecute el comando siguiente para obtener la dirección IP privada de la máquina virtual que actúa como servidor web.

    echo privateip="$(az vm list-ip-addresses \
      --resource-group $rgName \
      --name webservervm1 \
      --query "[0].virtualMachine.network.privateIpAddresses[0]" \
      --output tsv)"
    
  2. Cree una variable para almacenar la dirección IP privada. Reemplace <privateIP> por la dirección IP del paso anterior.

    export privateip=<privateIP>
    
    
  3. Configure el grupo de back-end para Application Gateway mediante la dirección IP privada de la máquina virtual.

    az network application-gateway address-pool create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name ap-backend \
      --servers $privateip
    
  4. Cargue el certificado para la máquina virtual en el grupo de back-end para Application Gateway, como un certificado raíz de confianza. El script de configuración generó este certificado y lo almacenó en el archivo 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 los valores de HTTP para usar el 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. Ejecute los comandos siguientes para establecer el certificado de confianza para el grupo de back-end para el certificado instalado en la máquina virtual 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"}]'
    

Ahora tiene una máquina virtual que ejecuta el sitio web del portal de envíos y una puerta de enlace de aplicaciones. Ha configurado el cifrado SSL entre Application Gateway y el servidor de aplicaciones.