Создание шлюза приложений с перенаправлением трафика HTTP в HTTPS с помощью портала Azure

Вы можете с помощью портала Azure создать шлюз приложений с сертификатом, который будет выполнять завершение сеанса TLS. Правило маршрутизации используется для перенаправления трафика HTTP в HTTPS-порт в шлюзе приложений. В этом примере также создается масштабируемый набор виртуальных машин с двумя экземплярами виртуальных машин, предназначенный для внутреннего пула шлюза приложений.

Вы узнаете, как выполнять следующие задачи:

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

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Чтобы создать сертификат и установить IIS по инструкциям из этого учебника, вам потребуется модуль Azure PowerShell 1.0.0 или более поздней версии. Чтобы узнать версию, выполните команду Get-Module -ListAvailable Az. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. Для выполнения команд в этом руководстве необходимо также выполнить командлет Login-AzAccount, чтобы создать подключение к Azure.

Создание самозаверяющего сертификата

Для использования в рабочей среде следует импортировать действительный сертификат, подписанный доверенным поставщиком. В этом руководстве мы создадим самозаверяющий сертификат с помощью New-SelfSignedCertificate. Вы можете использовать Export-PfxCertificate с возвращенным отпечатком, чтобы экспортировать PFX-файл из сертификата.

New-SelfSignedCertificate `
  -certstorelocation cert:\localmachine\my `
  -dnsname www.contoso.com

Отобразится примерно такой результат:

PSParentPath: Microsoft.PowerShell.Security\Certificate::LocalMachine\my

Thumbprint                                Subject
----------                                -------
E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630  CN=www.contoso.com

Воспользуйтесь отпечатком, чтобы создать PFX-файл:

$pwd = ConvertTo-SecureString -String "Azure123456!" -Force -AsPlainText
Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

Создание Шлюза приложений

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

  1. Войдите на портал Azure.

  2. Выберите Создать ресурс в верхнем левом углу окна на портале Azure.

  3. Щелкните Сети, а затем в списке "Рекомендованные" выберите Шлюз приложений.

  4. Введите следующие значения для шлюза приложений:

    • myAppGateway — для имени шлюза приложений.

    • myResourceGroupAG — для новой группы ресурсов.

      Create new application gateway

  5. Оставьте значения по умолчанию для остальных параметров и нажмите кнопку ОК.

  6. Щелкните Выбрать виртуальную сеть, выберите Создать, а затем введите следующие значения для виртуальной сети:

    • myVNet — имя виртуальной сети;

    • 10.0.0.0/16 — диапазон адресов виртуальной сети;

    • myAGSubnet — имя подсети;

    • 10.0.0.0/24 — диапазон адресов подсети.

      Create virtual network

  7. Нажмите кнопку ОК, чтобы создать виртуальную сеть и подсеть.

  8. В разделе Интерфейсная IP-конфигурация убедитесь, что тип IP-адреса имеет значение Общедоступный и выбрано Создать. Введите имя myAGPublicIPAddress. Оставьте значения по умолчанию для остальных параметров и нажмите кнопку ОК.

  9. В разделе Конфигурация прослушивателя выберите HTTPS, а затем щелкните Выберите файл и перейдите к файлу c:\appgwcert.pfx, а затем выберите Открыть.

  10. Введите appgwcert для имени сертификата и Azure123456! для пароля.

  11. Оставьте брандмауэр веб-приложения отключенным, а затем нажмите кнопку ОК.

  12. Просмотрите параметры на странице сводки и выберите ОК, чтобы создать сетевые ресурсы и шлюз приложений. Процесс создания шлюза приложений может занять несколько минут. Дождитесь успешного завершения развертывания, прежде чем переходить к следующему разделу.

Добавление подсети

  1. Выберите Все ресурсы в меню слева, а затем в списке ресурсов щелкните myVNet.

  2. Выберите Подсети, а затем — Подсеть.

    Create subnet

  3. Введите имя подсети myBackendSubnet.

  4. Введите диапазон адресов 10.0.2.0/24, а затем нажмите кнопку ОК.

добавление прослушивателя и правила перенаправления;

Добавление прослушивателя

Во-первых, добавьте прослушиватель myListener для порта 80.

  1. Откройте группу ресурсов myResourceGroupAG и выберите myAppGateway.
  2. Выберите Прослушиватели, а затем — + Базовые.
  3. Введите имя MyListener.
  4. В качестве имени нового интерфейсного порта введите httpPort, а для порт — 80.
  5. Убедитесь, что для протокола задано значение HTTP, а затем нажмите кнопку ОК.

Добавление правила маршрутизации с конфигурацией перенаправления

  1. В myAppGateway выберите Правила, а затем +Правило маршрутизации запроса.
  2. В поле Имя правила введите Rule2.
  3. Убедитесь, что в качестве прослушивателя выбран MyListener.
  4. Щелкните вкладку Серверные целевые объекты и в поле Тип целевого объекта выберите Перенаправление.
  5. Для типа перенаправления выберите Постоянный.
  6. Для цели перенаправления выберите Прослушиватель.
  7. Убедитесь, что для параметра Прослушиватель целевого объекта установлено значение appGatewayHttpListener.
  8. Для параметров Включить строку запроса и Включить путь выберите Да.
  9. Выберите Добавить.

Примечание.

appGatewayHttpListener — это имя прослушивателя по умолчанию. Дополнительные сведения см. в статье о конфигурации прослушивателя Шлюза приложений.

Создание масштабируемого набора виртуальных машин

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

  1. На портале в верхнем левом углу выберите + Создать ресурс.
  2. Выберите Вычисления.
  3. В поле поиска введите масштабируемый набор и нажмите клавишу ВВОД.
  4. Выберите Набор масштабирования виртуальной машины, а затем — Создать.
  5. В качестве имени масштабируемого набора виртуальных машин введите myvmss.
  6. Убедитесь, что для образа диска операционной системы выбран Windows Server 2016 Datacenter.
  7. Для группы ресурсов выберите myResourceGroupAG.
  8. Для имя пользователя введите azureuser.
  9. В поле "Пароль" введите Azure123456! и подтвердите пароль.
  10. Убедитесь, что для параметра Число экземпляров установлено значение 2.
  11. Выберите размер экземпляраD2s_v3.
  12. В разделе Сети убедитесь, что для параметра Выбрать параметры балансировки нагрузки установлено значение Шлюз приложений.
  13. Убедитесь, что для шлюза приложений установлено значение myAppGateway.
  14. Убедитесь, что для подсети установлено значение myBackendSubnet.
  15. Выберите Создать.

Связывание масштабируемого набора с правильным серверным пулом

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

  1. Откройте группу ресурсов myResourceGroupAg.
  2. Выберите myAppGateway.
  3. Выберите Серверные пулы.
  4. Выберите myAppGatewaymyvmss.
  5. Выберите Remove all targets from backend pool (Удалить все цели из серверного пула).
  6. Выберите Сохранить.
  7. После завершения этого процесса выберите серверный пул myAppGatewaymyvmss, щелкните Удалить, а затем нажмите кнопку ОК для подтверждения.
  8. Выберите appGatewayBackendPool.
  9. В разделе целевых объектов выберите VMSS.
  10. В разделе VMSS выберите myvmss.
  11. В разделе Конфигурации сетевого интерфейса выберите myvmssNic.
  12. Выберите Сохранить.

Обновление масштабируемого набора

Наконец, необходимо обновить масштабируемый набор с этими изменениями.

  1. Выберите масштабируемый набор myvmss.
  2. В разделе Параметры выберите Экземпляры.
  3. Выберите оба экземпляра, а затем щелкните Обновить.
  4. Выберите Да для подтверждения.
  5. Когда операция будет завершена, вернитесь к myAppGateway и выберите Серверные пулы. Теперь вы увидите, что appGatewayBackendPool имеет два целевых объекта, а myAppGatewaymyvmss — ни одного.
  6. Выберите myAppGatewaymyvmss, а затем — Удалить.
  7. Выберите ОК для подтверждения.

Установить IIS

Простой способ установить службы IIS в масштабируемом наборе — использовать PowerShell. На портале щелкните значок Cloud Shell и убедитесь, что выбран PowerShell.

Вставьте следующий код в окно PowerShell и нажмите клавишу ВВОД.

$publicSettings = @{ "fileUris" = (,"https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/appgatewayurl.ps1"); 
  "commandToExecute" = "powershell -ExecutionPolicy Unrestricted -File appgatewayurl.ps1" }
$vmss = Get-AzVmss -ResourceGroupName myResourceGroupAG -VMScaleSetName myvmss
Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
  -Name "customScript" `
  -Publisher "Microsoft.Compute" `
  -Type "CustomScriptExtension" `
  -TypeHandlerVersion 1.8 `
  -Setting $publicSettings
Update-AzVmss `
  -ResourceGroupName myResourceGroupAG `
  -Name myvmss `
  -VirtualMachineScaleSet $vmss

Обновление масштабируемого набора

После установки служб IIS на экземпляры необходимо снова обновить масштабируемый набор с этим изменением.

  1. Выберите масштабируемый набор myvmss.
  2. В разделе Параметры выберите Экземпляры.
  3. Выберите оба экземпляра, а затем щелкните Обновить.
  4. Выберите Да для подтверждения.

Тестирование шлюза приложений

Общедоступный IP-адрес приложения можно получить на странице обзора шлюза приложения.

  1. Выберите myAppGateway.

  2. На странице Обзор запишите IP-адрес в разделе Общедоступный интерфейсный IP-адрес.

  3. Скопируйте общедоступный IP-адрес и вставьте его в адресную строку браузера. Например http://52.170.203.149.

    Secure warning

  4. Чтобы принять предупреждение системы безопасности, если используется самозаверяющий сертификат безопасности, выберите Сведения, а затем нажмите Перейти на веб-страницу. На экране отобразится защищенный веб-сайт IIS, как в показано следующем примере:

    Test base URL in application gateway

Следующие шаги

Узнайте, как создать шлюз приложения с внутренним перенаправлением.