Упражнение. Настройка шифрования для внутренних пулов
Необходимо реализовать сквозное шифрование для приложения портала доставки. Шифрование всех данных между пользователями и серверами помогает гарантировать, что неавторизованный пользователь не сможет перехватывать и считывать данные.
В этом уроке вы настроите веб-приложение и шлюз приложений. Затем вы создадите самозаверяющие SSL-сертификаты и включите шифрование во внутреннем пуле для защиты трафика, передаваемого из шлюза приложений на ваши серверы.
На следующем рисунке выделены элементы, настроенные в этом упражнении. Вы настраиваете шлюз приложений с помощью Шлюз приложений Azure версии 2.
Развертывание виртуальной машины и шлюза приложений
Откройте Azure Cloud Shell в браузере и войдите в каталог с доступом к подписке, в которой требуется создать ресурсы. Для этого упражнения мы будем использовать среду оболочки Bash.
Выполните следующую команду в Cloud Shell, чтобы создать группу ресурсов для своих ресурсов. Замените
<resource group name>
именем группы ресурсов, а<location>
— названием региона Azure, в котором вы хотите развернуть ресурсы.az group create --resource-group <resource group name> --location <location>
Выполните следующую команду в Cloud Shell, чтобы создать переменную для хранения имени группы ресурсов:
export rgName=<resource group name>
В Azure Cloud Shell выполните следующую команду, чтобы скачать исходный код для портала доставки:
git clone https://github.com/MicrosoftDocs/mslearn-end-to-end-encryption-with-app-gateway shippingportal
Перейдите в папку shippingportal :
cd shippingportal
Выполните следующий скрипт установки, чтобы создать виртуальную машину, сертификаты и шлюз приложений:
bash setup-infra.sh
Примечание.
Выполнение этого скрипта занимает несколько минут. Разрешите работу с несколькими процессами для распаковки и настройки шлюза и ресурсов. Вы должны увидеть, что процесс успешно завершен с нулевым числом предупреждений и ошибок.
Проверка правильной настройки веб-сервера
Чтобы увидеть URL-адрес веб-сервера, созданного скриптом настройки, выполните следующую команду.
echo https://"$(az vm show \ --name webservervm1 \ --resource-group $rgName \ --show-details \ --query [publicIps] \ --output tsv)"
Скопируйте и вставьте URL-адрес в веб-браузер и перейдите по URL-адресу.
В браузере, скорее всего, появится предупреждение, аналогичное показанному на следующем рисунке. В зависимости от браузера точный текст предупреждения может отличаться. На рисунке показано сообщение в Microsoft Edge.
Причина в том, что веб-сервер настроен с использованием самозаверяющего сертификата, подлинность которого невозможно проверить. На этой странице предупреждения найдите и выберите ссылку, чтобы перейти к веб-сайту; например, выберите "Перейти" на веб-страницу или выберите "Дополнительно", а затем "Продолжить" или эквивалентно. В результате вы перейдете на домашнюю страницу портала доставки, как показано на следующем рисунке. Это пример приложения для проверки правильности настройки сервера.
Настройка шифрования для внутреннего пула
Чтобы получить частный IP-адрес виртуальной машины, выступающей в роли веб-сервера, выполните следующую команду.
echo privateip="$(az vm list-ip-addresses \ --resource-group $rgName \ --name webservervm1 \ --query "[0].virtualMachine.network.privateIpAddresses[0]" \ --output tsv)"
Создайте переменную для хранения частного IP-адреса. Замените
<privateIP>
IP-адрес на предыдущем шаге.export privateip=<privateIP>
Настройте внутренний пул для Шлюз приложений с помощью частного IP-адреса виртуальной машины.
az network application-gateway address-pool create \ --resource-group $rgName \ --gateway-name gw-shipping \ --name ap-backend \ --servers $privateip
Отправьте сертификат виртуальной машины в серверный пул, чтобы Шлюз приложений в качестве доверенного корневого сертификата. Скрипт установки создал этот сертификат и сохранил его в файле 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
Настройте параметры 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
Выполните следующие команды, чтобы задать доверенный сертификат для внутреннего пула сертификатом, установленным на серверной виртуальной машине:
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 между Шлюзом приложений и сервером приложения.