Поделиться через


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

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

В этой статье вы узнаете, как:

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

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

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перенести Azure PowerShell с AzureRM на Az, см. статью Перенос 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 — для новой группы ресурсов.
  5. Оставьте значения по умолчанию для остальных параметров и нажмите кнопку ОК.

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

    • myVNet — имя виртуальной сети;
    • 10.0.0.0/16 — диапазон адресов виртуальной сети;
    • myAGSubnet — имя подсети;
    • 10.0.0.0/24 — диапазон адресов подсети.
  7. Нажмите кнопку ОК, чтобы создать виртуальную сеть и подсеть.

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

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

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

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

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

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

  1. Выберите Все ресурсы в меню слева, а затем в списке ресурсов щелкните myVNet.
  2. Выберите Подсети, а затем — Подсеть.
  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. Убедитесь, что Subnet установлено значение 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

    Предупреждение системы безопасности

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

    Тестирование базового URL-адреса в шлюзе приложений

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

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