Упражнение. Настройка шифрования для внутренних пулов

Завершено

Необходимо реализовать сквозное шифрование для приложения портала доставки. Шифрование всех данных между пользователями и серверами помогает гарантировать, что неавторизованный пользователь не сможет перехватывать и считывать данные.

В этом уроке вы настроите веб-приложение и шлюз приложений. Затем вы создадите самозаверяющие SSL-сертификаты и включите шифрование во внутреннем пуле для защиты трафика, передаваемого из шлюза приложений на ваши серверы.

На следующем рисунке выделены элементы, настроенные в этом упражнении. Вы настраиваете шлюз приложений с помощью Шлюз приложений Azure версии 2.

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

Развертывание виртуальной машины и шлюза приложений

  1. Откройте Azure Cloud Shell в браузере и войдите в каталог с доступом к подписке, в которой требуется создать ресурсы. Для этого упражнения мы будем использовать среду оболочки Bash.

  2. Выполните следующую команду в Cloud Shell, чтобы создать группу ресурсов для своих ресурсов. Замените <resource group name> именем группы ресурсов, а <location> — названием региона Azure, в котором вы хотите развернуть ресурсы.

    az group create --resource-group <resource group name> --location <location>
    
  3. Выполните следующую команду в Cloud Shell, чтобы создать переменную для хранения имени группы ресурсов:

    export rgName=<resource group name>
    
    
  4. В Azure Cloud Shell выполните следующую команду, чтобы скачать исходный код для портала доставки:

    git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
    
  5. Перейдите в папку shippingportal :

    cd shippingportal
    
  6. Выполните следующий скрипт установки, чтобы создать виртуальную машину, сертификаты и шлюз приложений:

    bash setup-infra.sh
    

    Примечание.

    Выполнение этого скрипта занимает несколько минут. Разрешите работу с несколькими процессами для распаковки и настройки шлюза и ресурсов. Вы должны увидеть, что процесс успешно завершен с нулевым числом предупреждений и ошибок.

Проверка правильной настройки веб-сервера

  1. Чтобы увидеть URL-адрес веб-сервера, созданного скриптом настройки, выполните следующую команду.

    echo https://"$(az vm show \
      --name webservervm1 \
      --resource-group $rgName \
      --show-details \
      --query [publicIps] \
      --output tsv)"
    
  2. Скопируйте и вставьте URL-адрес в веб-браузер и перейдите по URL-адресу.

    В браузере, скорее всего, появится предупреждение, аналогичное показанному на следующем рисунке. В зависимости от браузера точный текст предупреждения может отличаться. На рисунке показано сообщение в Microsoft Edge.

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

    Причина в том, что веб-сервер настроен с использованием самозаверяющего сертификата, подлинность которого невозможно проверить. На этой странице предупреждения найдите и выберите ссылку, чтобы перейти к веб-сайту; например, выберите "Перейти" на веб-страницу или выберите "Дополнительно", а затем "Продолжить" или эквивалентно. В результате вы перейдете на домашнюю страницу портала доставки, как показано на следующем рисунке. Это пример приложения для проверки правильности настройки сервера.

    Screenshot of the shipping portal home page Microsoft Edge.

Настройка шифрования для внутреннего пула

  1. Чтобы получить частный IP-адрес виртуальной машины, выступающей в роли веб-сервера, выполните следующую команду.

    echo privateip="$(az vm list-ip-addresses \
      --resource-group $rgName \
      --name webservervm1 \
      --query "[0].virtualMachine.network.privateIpAddresses[0]" \
      --output tsv)"
    
  2. Создайте переменную для хранения частного IP-адреса. Замените <privateIP> IP-адрес на предыдущем шаге.

    export privateip=<privateIP>
    
    
  3. Настройте внутренний пул для Шлюз приложений с помощью частного IP-адреса виртуальной машины.

    az network application-gateway address-pool create \
      --resource-group $rgName \
      --gateway-name gw-shipping \
      --name ap-backend \
      --servers $privateip
    
  4. Отправьте сертификат виртуальной машины в серверный пул, чтобы Шлюз приложений в качестве доверенного корневого сертификата. Скрипт установки создал этот сертификат и сохранил его в файле 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. Настройте параметры HTTP для использования сертификата:

    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. Выполните следующие команды, чтобы задать доверенный сертификат для внутреннего пула сертификатом, установленным на серверной виртуальной машине:

    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"}]'
    

Теперь у вас есть виртуальная машина с порталом доставки и шлюз приложений. Вы настроили шифрование SSL между Шлюзом приложений и сервером приложения.