Настройка прослушивателя Шлюза приложений для шифрования

Завершено

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

Создание внешнего порта

Шлюз приложений принимает запросы через один или несколько портов. Если взаимодействие со шлюзом производится по протоколу HTTPS, следует настроить SSL-порт. Как правило, протокол HTTPS использует порт 443. Чтобы создать новый внешний порт, выполните команду az network application-gateway frontend-port create. В следующем примере показано, как создать внешний порт для порта 443.

az network application-gateway frontend-port create \
    --resource-group $rgName \
    --gateway-name gw-shipping  \
    --name my-https-port \
    --port 443

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

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

Добавить сертификат можно с помощью команды az network application-gateway ssl-cert create. Файл сертификата должен иметь формат PFX. Так как этот файл содержит закрытый ключ, скорее всего, он также будет защищен паролем. Пароль указывается в аргументе cert-password, как показано в следующем примере:

az network application-gateway ssl-cert create \
   --resource-group $rgName \
   --gateway-name gw-shipping \
   --name shipping-ssl.crt \
   --cert-file shippingportal/server-config/shipping-ssl.pfx \
   --cert-password <password for certificate file>

Затем можно создать прослушиватель, который принимает запросы с внешнего порта и расшифровывает их с помощью сертификата. Используйте команду az network application-gateway http-listener create.

az network application-gateway http-listener create \
    --resource-group $rgName \
    --gateway-name gw-shipping \
    --name http-listener \
    --frontend-port my-https-port \
    --ssl-cert shipping-ssl.crt

Определение правила для отправки HTTPS-запросов на серверы

Последний шаг — создание правила для перенаправления сообщений, полученных прослушивателем, на серверы во внутреннем пуле. Сообщения, полученные с внешнего порта, расшифровываются с помощью SSL-сертификата, указанного для прослушивателя. Их необходимо зашифровывать повторно с помощью сертификата на стороне клиента, указанного для серверов во внутреннем пуле. Эти сведения определяются в правиле.

В приведенном ниже примере показано, как использовать команду az network application-gateway rule create для создания правила, связывающего прослушиватель с внутренним пулом. Параметр --http-settings задает параметры HTTP, ссылающиеся на сертификат на стороне клиента для серверов. Эти параметры были созданы в предыдущем уроке.

az network application-gateway rule create \
    --resource-group $rgName \
    --gateway-name gw-shipping \
    --name app-gw-rule \
    --address-pool ap-backend \
    --http-listener http-listener \
    --http-settings https-settings \
    --rule-type Basic
    --priority 101

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