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

Завершено

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

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

Шифрование данных, передаваемых из Шлюза приложений во внутренний пул

Внутренний пул может представлять собой отдельные виртуальные машины, масштабируемый набор виртуальных машин, IP-адреса физических компьютеров (локальных или удаленных) либо службы, размещенные в Службе приложений Azure. Все серверы во внутреннем пуле должны быть настроены таким же образом, включая параметры безопасности.

Diagram showing how Application Gateway routes a request to a web server.

Если трафик, направляемый во внутренний пул, защищается с помощью SSL, каждый сервер во внутреннем пуле должен предоставлять соответствующий сертификат. В целях тестирования вы можете создать самозаверяющий сертификат. В рабочей среде следует всегда создавать или приобретать сертификат, подлинность которого может проверить центр сертификации (ЦС).

В настоящее время существуют две версии Шлюза приложений: 1 и 2. Они имеют аналогичные возможности, но имеют немного разные сведения о реализации. Версия 2 предоставляет дополнительные функции и улучшения производительности.

Конфигурация сертификатов для Шлюза приложений версии 1

Шлюз приложений версии 1 требует установки сертификата проверки подлинности для серверов в конфигурации шлюза. Этот сертификат содержит открытый ключ, с помощью которого Шлюз приложений может шифровать сообщения и проверять подлинность серверов. Создать его можно путем экспорта с сервера. Для расшифровки сообщений сервер приложений использует соответствующий закрытый ключ. Этот ключ должен храниться только на ваших серверах приложений.

Добавить сертификат проверки подлинности в Шлюз приложений можно с помощью команды az network application-gateway auth-cert create в Azure CLI. Синтаксис этой команды показан в приведенном ниже примере. Сертификат должен иметь формат CER.

az network application-gateway auth-cert create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <certificate name> \
    --cert-file <path to authentication certificate>

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

  • Команда az network application-gateway auth-cert list показывает установленные сертификаты.
  • Чтобы изменить сертификат, можно использовать az network application-gateway auth-cert update команду.
  • Команда az network application-gateway auth-cert delete удаляет сертификат.

Конфигурация сертификатов для Шлюза приложений версии 2

Шлюз приложений версии 2 предъявляет немного иные требования к проверке подлинности. Вы предоставляете сертификат для центра сертификации, который проверил подлинность SSL-сертификата для серверов во внутреннем пуле. Этот сертификат добавляется в Шлюз приложений как доверенный корневой сертификат. Выполните команду az network application-gateway root-cert create в Azure CLI.

az network application-gateway root-cert create \
      --resource-group <resource group name> \
      --gateway-name <application gateway name> \
      --name <certificate name> \
      --cert-file <path to trusted CA certificate>

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

Параметры HTTP

Шлюз приложений использует правило, чтобы указать, как направлять сообщения, которые он получает на входящих портах на серверы в серверном пуле. Если серверы используют SSL, необходимо настроить правило, чтобы указать:

  • Что серверы ожидают трафик по протоколу HTTPS.
  • Какой сертификат использовать для шифрования трафика и проверки подлинности подключения к серверу.

Эти сведения задаются в параметре HTTP.

Параметр HTTP можно определить с помощью az network application-gateway http-settings create команды в Azure CLI. В следующем примере показан синтаксис для создания параметра, который маршрутизирует трафик по протоколу HTTPS через порт 443 на серверах во внутреннем пуле. Если вы используете Шлюз приложений версии 1, параметр --auth-certs — это имя сертификата проверки подлинности, ранее добавленного в Шлюз приложений.

az network application-gateway http-settings create \
    --resource-group <resource group name> \
    --gateway-name <application gateway name> \
    --name <HTTPS settings name> \
    --port 443 \
    --protocol Https \
    --auth-certs <certificate name>

Если вы используете Шлюз приложений версии 2, параметр --auth-certs следует опустить. Шлюз приложений обращается ко внутреннему серверу. Он проверяет подлинность предоставленного им сертификата в ЦС, указанных в списке доверенных корневых сертификатов. Если соответствий нет, Шлюз приложений не подключается к внутреннему серверу и возникает ошибка HTTP 502 (неверный шлюз).