Создание шлюза приложений с перенаправлением трафика 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
Создание Шлюза приложений
Виртуальная сеть необходима для обмена данными между создаваемыми ресурсами. В этом примере создаются две подсети: одна для шлюза приложений, а другая — для внутренних серверов. Вы можете создать виртуальную сеть во время создания шлюза приложений.
Войдите на портал Azure.
Выберите Создать ресурс в верхнем левом углу окна на портале Azure.
Щелкните Сети, а затем в списке "Рекомендованные" выберите Шлюз приложений.
Введите следующие значения для шлюза приложений:
myAppGateway — для имени шлюза приложений.
myResourceGroupAG — для новой группы ресурсов.
Оставьте значения по умолчанию для остальных параметров и нажмите кнопку ОК.
Щелкните Выбрать виртуальную сеть, выберите Создать, а затем введите следующие значения для виртуальной сети:
myVNet — имя виртуальной сети;
10.0.0.0/16 — диапазон адресов виртуальной сети;
myAGSubnet — имя подсети;
10.0.0.0/24 — диапазон адресов подсети.
Нажмите кнопку ОК, чтобы создать виртуальную сеть и подсеть.
В разделе Интерфейсная IP-конфигурация убедитесь, что тип IP-адреса имеет значение Общедоступный и выбрано Создать. Введите имя myAGPublicIPAddress. Оставьте значения по умолчанию для остальных параметров и нажмите кнопку ОК.
В разделе Конфигурация прослушивателя выберите HTTPS, а затем щелкните Выберите файл и перейдите к файлу c:\appgwcert.pfx, а затем выберите Открыть.
Введите appgwcert для имени сертификата и Azure123456! для пароля.
Оставьте брандмауэр веб-приложения отключенным, а затем нажмите кнопку ОК.
Просмотрите параметры на странице сводки и выберите ОК, чтобы создать сетевые ресурсы и шлюз приложений. Процесс создания шлюза приложений может занять несколько минут. Дождитесь успешного завершения развертывания, прежде чем переходить к следующему разделу.
Добавление подсети
Выберите Все ресурсы в меню слева, а затем в списке ресурсов щелкните myVNet.
Выберите Подсети, а затем — Подсеть.
Введите имя подсети myBackendSubnet.
Введите диапазон адресов 10.0.2.0/24, а затем нажмите кнопку ОК.
добавление прослушивателя и правила перенаправления;
Добавление прослушивателя
Во-первых, добавьте прослушиватель myListener для порта 80.
- Откройте группу ресурсов myResourceGroupAG и выберите myAppGateway.
- Выберите Прослушиватели, а затем — + Базовые.
- Введите имя MyListener.
- В качестве имени нового интерфейсного порта введите httpPort, а для порт — 80.
- Убедитесь, что для протокола задано значение HTTP, а затем нажмите кнопку ОК.
Добавление правила маршрутизации с конфигурацией перенаправления
- В myAppGateway выберите Правила, а затем +Правило маршрутизации запроса.
- В поле Имя правила введите Rule2.
- Убедитесь, что в качестве прослушивателя выбран MyListener.
- Щелкните вкладку Серверные целевые объекты и в поле Тип целевого объекта выберите Перенаправление.
- Для типа перенаправления выберите Постоянный.
- Для цели перенаправления выберите Прослушиватель.
- Убедитесь, что для параметра Прослушиватель целевого объекта установлено значение appGatewayHttpListener.
- Для параметров Включить строку запроса и Включить путь выберите Да.
- Выберите Добавить.
Примечание.
appGatewayHttpListener — это имя прослушивателя по умолчанию. Дополнительные сведения см. в статье о конфигурации прослушивателя Шлюза приложений.
Создание масштабируемого набора виртуальных машин
В этом примере создается масштабируемый набор виртуальных машин, чтобы предоставить серверы для серверного пула в шлюзе приложений.
- На портале в верхнем левом углу выберите + Создать ресурс.
- Выберите Вычисления.
- В поле поиска введите масштабируемый набор и нажмите клавишу ВВОД.
- Выберите Набор масштабирования виртуальной машины, а затем — Создать.
- В качестве имени масштабируемого набора виртуальных машин введите myvmss.
- Убедитесь, что для образа диска операционной системы выбран Windows Server 2016 Datacenter.
- Для группы ресурсов выберите myResourceGroupAG.
- Для имя пользователя введите azureuser.
- В поле "Пароль" введите Azure123456! и подтвердите пароль.
- Убедитесь, что для параметра Число экземпляров установлено значение 2.
- Выберите размер экземпляраD2s_v3.
- В разделе Сети убедитесь, что для параметра Выбрать параметры балансировки нагрузки установлено значение Шлюз приложений.
- Убедитесь, что для шлюза приложений установлено значение myAppGateway.
- Убедитесь, что для подсети установлено значение myBackendSubnet.
- Нажмите кнопку создания.
Связывание масштабируемого набора с правильным серверным пулом
Пользовательский интерфейс портала масштабируемого набора виртуальных машин создает новый серверный пул, однако его нужно связать с существующим appGatewayBackendPool.
- Откройте группу ресурсов myResourceGroupAg.
- Выберите myAppGateway.
- Выберите Серверные пулы.
- Выберите myAppGatewaymyvmss.
- Выберите Remove all targets from backend pool (Удалить все цели из серверного пула).
- Выберите Сохранить.
- После завершения этого процесса выберите серверный пул myAppGatewaymyvmss, щелкните Удалить, а затем нажмите кнопку ОК для подтверждения.
- Выберите appGatewayBackendPool.
- В разделе целевых объектов выберите VMSS.
- В разделе VMSS выберите myvmss.
- В разделе Конфигурации сетевого интерфейса выберите myvmssNic.
- Выберите Сохранить.
Обновление масштабируемого набора
Наконец, необходимо обновить масштабируемый набор с этими изменениями.
- Выберите масштабируемый набор myvmss.
- В разделе Параметры выберите Экземпляры.
- Выберите оба экземпляра, а затем щелкните Обновить.
- Выберите Да для подтверждения.
- Когда операция будет завершена, вернитесь к myAppGateway и выберите Серверные пулы. Теперь вы увидите, что appGatewayBackendPool имеет два целевых объекта, а myAppGatewaymyvmss — ни одного.
- Выберите myAppGatewaymyvmss, а затем — Удалить.
- Выберите ОК для подтверждения.
Установить 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 на экземпляры необходимо снова обновить масштабируемый набор с этим изменением.
- Выберите масштабируемый набор myvmss.
- В разделе Параметры выберите Экземпляры.
- Выберите оба экземпляра, а затем щелкните Обновить.
- Выберите Да для подтверждения.
Тестирование шлюза приложений
Общедоступный IP-адрес приложения можно получить на странице обзора шлюза приложения.
Выберите myAppGateway.
На странице Обзор запишите IP-адрес в разделе Общедоступный интерфейсный IP-адрес.
Скопируйте общедоступный IP-адрес и вставьте его в адресную строку браузера. Например: http://52.170.203.149
Чтобы принять предупреждение системы безопасности, если используется самозаверяющий сертификат безопасности, выберите Сведения, а затем нажмите Перейти на веб-страницу. На экране отобразится защищенный веб-сайт IIS, как в показано следующем примере:
Следующие шаги
Узнайте, как создать шлюз приложения с внутренним перенаправлением.