Руководство. Настройка Шлюз приложений с завершением TLS с помощью портал Azure

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

В этом руководстве описано следующее:

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

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

Примечание

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

Предварительные требования

  • Подписка Azure

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

В этом разделе вы создадите самозаверяющий сертификат с помощью командлета New-SelfSignedCertificate. Передайте этот сертификат на портал Azure при создании прослушивателя для шлюза приложений.

На локальном компьютере откройте окно Windows PowerShell от имени администратора. Выполните следующую команду для создания сертификата.

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

Вы увидите примерно такой ответ:

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

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

Используйте Export-PfxCertificate с возвращенным отпечатком, чтобы экспортировать PFX-файл из сертификата. Поддерживаемые алгоритмы PFX перечислены в функции PFXImportCertStore. Пароль должен содержать от 4 до 12 символов.

$pwd = ConvertTo-SecureString -String <your password> -Force -AsPlainText
Export-PfxCertificate `
  -cert cert:\localMachine\my\E1E81C23B3AD33F9B4D1717B20AB65DBB91AC630 `
  -FilePath c:\appgwcert.pfx `
  -Password $pwd

Вход в Azure

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

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

  1. В меню портал Azure выберите + Создать ресурс>Сеть>Шлюз приложений или найдите Шлюз приложений в поле поиска портала.

  2. Нажмите кнопку создания.

Вкладка "Основные сведения"

  1. На вкладке Основные сведения введите или выберите следующие значения:

    • Группа ресурсов. Выберите myResourceGroupAG для группы ресурсов. Выберите Создать для создания группы ресурсов, если она еще не существует.

    • Имя шлюза приложений. Введите myAppGateway для имени шлюза приложений.

      Создание шлюза приложений: Основы

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

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

    • Name (Имя). Введите myVNet для имени виртуальной сети.

    • Имя подсети (Подсеть шлюза приложений). В сетке Подсети будет показана подсеть с именем По умолчанию. Измените имя этой подсети на myAGSubnet.
      Подсеть шлюза приложений может содержать только шлюзы приложений. Другие ресурсы запрещены.

    • Имя подсети (подсеть внутреннего сервера). Во второй строке таблицы Подсети введите myBackendSubnet в столбце Имя подсети.

    • Диапазон адресов (подсеть внутреннего сервера). Во второй строке таблицы Подсети введите диапазон адресов, которые не пересекаются с диапазоном адресов myAGSubnet. Например, если диапазон адресов myAGSubnet равен 10.0.0.0/24, введите 10.0.1.0/24 для диапазона адресов myBackendSubnet.

    Выберите ОК, чтобы закрыть окно Создание виртуальной сети и сохранить настройки виртуальной сети.

    Создание шлюза приложений: виртуальная сеть

  3. На вкладке Основные сведения примите значения по умолчанию для других параметров и выберите Далее: интерфейсные серверы.

Вкладка "Интерфейсные серверы"

  1. На вкладке Интерфейсные серверы убедитесь, что для параметра Тип IP-адреса интерфейсных серверов установлено значение Общедоступный.
    Вы можете настроить общедоступный интерфейсный или частный IP-адрес, согласно вашему варианту использования. В этом примере мы будем использовать общедоступный интерфейсный IP-адрес.

    Примечание

    Для этого номера SKU Шлюза приложений версии 2 можно выбрать только общедоступную интерфейсную IP-конфигурацию. Частная интерфейсная IP-конфигурация сейчас не поддерживается для номера SKU версии 2.

  2. Выберите команду Добавить новый для параметра Общедоступный IP-адрес и введите myAGPublicIPAddress в качестве имени общедоступного IP-адреса. Затем нажмите кнопку ОК.

    Создание шлюза приложений: интерфейсные серверы

  3. По завершении выберите Next: серверные компоненты.

Вкладка "Серверные компоненты"

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

  1. На вкладке Серверные компоненты выберите элемент Добавление серверного пула.

  2. В открывшемся окне Добавить внутренний пул введите следующие значения для создания пустого внутреннего пула.

    • Name (Имя). Введите myBackendPool в качестве имени внутреннего пула.
    • Добавление внутреннего пула без целей. Чтобы создать серверный пул без целевых объектов, выберите Да. После создания шлюза приложения вы добавите серверные целевые объекты.
  3. В окне Добавление внутреннего пула выберите Добавить, чтобы сохранить конфигурацию внутреннего пула и вернуться на вкладку Серверные компоненты.

    Создание шлюза приложений: серверные компоненты

  4. На вкладке Серверные компоненты выберите Далее: конфигурация.

Вкладка "Конфигурация"

На вкладке Конфигурация созданный интерфейсный и внутренний пул подключается с помощью правила маршрутизации.

  1. Выберите элемент Добавление правила маршрутизации в столбце Правила маршрутизации.

  2. В открывшемся окне Добавление правила маршрутизации введите myRoutingRule в поле Имя правила.

  3. Для правила маршрутизации требуется прослушиватель. На вкладке Прослушиватель в окне Добавление правила маршрутизации введите следующие значения для прослушивателя.

    • Имя прослушивателя. Введите myListener в качестве имени прослушивателя.
    • Интерфейсный IP-адрес. Выберите Общедоступные, чтобы выбрать общедоступный IP-адрес, который вы создали для интерфейсных серверов.
    • Протокол. Выберите HTTPS.
    • Порт: Убедитесь, что для порта указан номер 443.

    В разделе Параметры HTTPS:

    • Выбрать сертификат — выберите Отправить сертификат.

    • PFX-файл сертификата. Найдите и выберите файл c:\appgwcert.pfx, созданный ранее.

    • Имя сертификата. Введите mycert1 для имени сертификата.

    • Пароль — введите пароль, который использовался при создании сертификата.

      Примите значения по умолчанию для других параметров на вкладке Прослушиватель, а затем выберите вкладку Серверные целевые объекты, чтобы настроить остальную часть правила маршрутизации.

    Создание шлюза приложений: прослушиватель

  4. На вкладке Серверные целевые объекты выберите значение myBackendPool для параметра Серверный целевой объект.

  5. Для Параметр HTTP выберите Добавить, чтобы создать параметр HTTP. Параметр HTTP будет определять поведение правила маршрутизации. В открывшемся окне Добавление параметра HTTP введите myHTTPSetting в поле Имя параметра HTTP. Примите значения по умолчанию для других параметров в окне Добавление параметра HTTP, затем выберите Добавить, чтобы вернуться к окну Добавление правила маршрутизации.

    Снимок экрана: добавление параметра H T P на вкладке

  6. В окне Добавление правила маршрутизации выберите Добавить, чтобы сохранить правило маршрутизации и вернуться на вкладку Конфигурация.

    Создание шлюза приложений: правило маршрутизации

  7. По завершении выберите Next: Теги , а затем Далее: Отзыв и создание.

Вкладка "Просмотр и создание"

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

Добавление серверных целевых объектов

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

Для этого сделайте следующее:

  1. Создайте две виртуальные машины (myVM и myVM2), которые будут использоваться в качестве внутренних серверов.
  2. Установить службы IIS на виртуальных машинах, чтобы убедиться, что шлюз приложений успешно создан.
  3. Добавить внутренние серверы к внутренним пулам.

Создание виртуальной машины

  1. В меню портал Azure выберите + Создать ресурс>Вычисления>Windows Server 2016 Datacenter или найдите Windows Server в поле поиска портала и выберите Windows Server 2016 Datacenter.

  2. Нажмите кнопку создания.

    Шлюз приложений может осуществлять маршрутизацию трафика для любого типа виртуальной машины, используемой в этом внутреннем пуле. В этом примере используется Windows Server 2016 Datacenter.

  3. На вкладке Основы введите для следующих параметров виртуальной машины такие значения:

    • Группа ресурсов. Выберите myResourceGroupAG для имени группы ресурсов.
    • Имя виртуальной машины. Введите myVM для имени виртуальной машины.
    • Имя пользователя. Введите имя пользователя для учетной записи администратора.
    • Пароль. Введите пароль для учетной записи администратора.
  4. Примите остальные значения по умолчанию и щелкните Далее: Диски.

  5. Примите значения по умолчанию на вкладке Диски, а затем выберите Далее: Сети.

  6. На вкладке Сети убедитесь, что для параметра Виртуальная сеть выбрано значение myVNet, а для параметра Подсеть — значение myBackendSubnet. Примите остальные значения по умолчанию и щелкните Далее: управление.

    Шлюз приложений может взаимодействовать с экземплярами за пределами виртуальной сети, к которой он относится, при наличии подключения по IP-адресу.

  7. На вкладке Управление для параметра Диагностика загрузки задайте значение Отключить. Примите другие значения по умолчанию и выберите Review + create (Просмотр и создание).

  8. На вкладке Review + create (Просмотр и создание) проверьте параметры, устраните ошибки проверки, а затем выберите Создать.

  9. Дождитесь завершения развертывания, прежде чем продолжить.

Установка служб IIS для тестирования

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

  1. Откройте Azure PowerShell. Для этого выберите Cloud Shell в верхней панели навигации портала Azure, а затем выберите PowerShell из раскрывающегося списка.

    Установка пользовательского расширения

  2. Измените параметр расположения для своей среды, а затем выполните следующую команду, чтобы установить службы IIS на виртуальной машине:

           Set-AzVMExtension `
             -ResourceGroupName myResourceGroupAG `
             -ExtensionName IIS `
             -VMName myVM `
             -Publisher Microsoft.Compute `
             -ExtensionType CustomScriptExtension `
             -TypeHandlerVersion 1.4 `
             -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
             -Location <location>
    
  3. Создайте вторую виртуальную машину и установите IIS, следуя только что выполненным инструкциям. Используйте myVM2 в качестве имени виртуальной машины и параметр VMName для командлета Set-AzVMExtension.

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

  1. Выберите Все ресурсы, а затем — myAppGateway.

  2. Выберите Серверные пулы в меню слева.

  3. Выберите myBackendPool.

  4. В разделе Тип цели выберите Виртуальная машина из раскрывающегося списка.

  5. В разделе Целевой объект выберите сетевой интерфейс в разделе myVM из раскрывающегося списка.

  6. Повторите эту процедуру, чтобы добавить сетевой интерфейс для myVM2.

    Добавление внутренних серверов

  7. Щелкните Сохранить.

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

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

  1. Выберите Все ресурсы, а затем щелкните myAGPublicIPAddress.

    Запись общедоступного IP-адреса шлюза приложений

  2. В адресной строке браузера введите https://<IP-адрес шлюза приложений> .

    Чтобы принять предупреждение системы безопасности, если используется самозаверяющий сертификат безопасности, выберите Сведения (или Advanced (Дополнительно) в Chrome), а затем перейдите на веб-страницу.

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

    На экране отобразится защищенный веб-сайт IIS, как в показано следующем примере:

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

Очистка ресурсов

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

Дальнейшие действия

Изучив это руководство, вы:

  • Создание самозаверяющего сертификата
  • Создание шлюза приложений с сертификатом

Дополнительные сведения о поддержке Шлюз приложений TLS см. в статье Сквозной протокол TLS с Шлюз приложений и политикой Шлюз приложений TLS.

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