Сопоставление существующего личного домена с Azure Spring Apps

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

Эта статья применима к: ✔️ Java ✔️ C#

Эта статья относится к: ✔️ Standard ✔️ Enterprise

Технология DNS (служба доменных имен) предназначена для хранения имен узлов в сети. В этой статье сопоставляется домен, например www.contoso.comс помощью записи CNAME. Также мы защитим домен с помощью сертификата и покажем, как применить протокол TLS (или SSL).

Сертификаты используются для шифрования веб-трафика. Сертификаты TLS/SSL можно хранить в Azure Key Vault.

Необходимые компоненты

  • Подписка Azure. Если у вас еще нет подписки, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
  • (Необязательно) Azure CLI версии 2.45.0 или более поздней. Чтобы установить расширение Azure Spring Apps, выполните следующую команду: az extension add --name spring
  • Приложение, развернутое в Azure Spring Apps (см. Краткое руководство. Запуск существующего приложения в Azure Spring Apps с помощью портала Azure или используйте существующее приложение). Если приложение развернуто с помощью плана "Базовый", обязательно обновите его до стандартного плана.
  • Доменное имя с доступом к реестру DNS для поставщика домена, например GoDaddy.
  • Закрытый сертификат (т. е. ваш самозаверяющий сертификат) стороннего поставщика. Этот сертификат должен соответствовать домену.
  • Развернутый экземпляр Azure Key Vault. Дополнительные сведения см. в статье Сведения об Azure Key Vault.

IP-адреса для управления Azure Spring Apps еще не являются частью доверенного службы Майкрософт Azure. Поэтому для загрузки сертификатов из Хранилища ключей, защищенных с помощью подключений к частной конечной точке, необходимо добавить следующие IP-адреса в брандмауэр Azure Key Vault:

  • 20.99.204.111
  • 20.201.9.97
  • 20.74.97.5
  • 52.235.25.35
  • 20.194.10.0
  • 20.59.204.46
  • 104.214.186.86
  • 52.153.221.222
  • 52.160.137.39
  • 20.39.142.56
  • 20.199.190.222
  • 20.79.64.6
  • 20.211.128.96
  • 52.149.104.144
  • 20.197.121.209
  • 40.119.175.77
  • 20.108.108.22
  • 102.133.143.38
  • 52.226.244.150
  • 20.84.171.169
  • 20.93.48.108
  • 20.75.4.46
  • 20.78.29.213
  • 20.106.86.34
  • 20.193.151.132

Импорт сертификата

Подготовка файла сертификата в формате PFX (необязательно)

Azure Key Vault поддерживает импорт частного сертификата в формате PEM и PFX. Если peM-файл, полученный от поставщика сертификатов, не работает в разделе "Сохранить сертификат в Key Vault", выполните действия, описанные здесь, чтобы создать PFX для Azure Key Vault .

Объединение промежуточных сертификатов

Если цепочка сертификатов из центра сертификации содержит несколько сертификатов, их необходимо объединить по порядку.

Для этого откройте каждый сертификат, полученный в текстовом редакторе.

Создайте файл для объединенных сертификатов и присвойте ему имя mergedcertificate.crt. В текстовом редакторе скопируйте содержимое каждого сертификата в этот файл. Порядок сертификатов должен соответствовать порядку в цепочке сертификатов, начиная вашим сертификатом и заканчивая корневым сертификатом. Это должно выглядеть следующим образом:

-----BEGIN CERTIFICATE-----
<your entire Base64 encoded SSL certificate>
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
<The entire Base64 encoded intermediate certificate 1>
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
<The entire Base64 encoded intermediate certificate 2>
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
<The entire Base64 encoded root certificate>
-----END CERTIFICATE-----

Экспорт сертификата в PFX-файл

Экспортируйте объединенный TLS/SSL-сертификат с закрытым ключом, с помощью которого был создан запрос сертификата.

Если запрос сертификата был создан с помощью OpenSSL, то вы создали файл закрытого ключа. Чтобы экспортировать сертификат в PFX-файл, выполните следующую команду. Замените заполнители <private-key-file> и <merged-certificate-file> путями к закрытому ключу и объединенному файлу сертификатов.

openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>

При появлении запроса определите пароль для экспорта. Используйте этот пароль при передаче СЕРТИФИКАТА TLS/SSL в Azure Key Vault позже.

Если вы создали запрос на сертификат с помощью IIS или Certreq.exe, установите сертификат на локальный компьютер, а затем экспортируйте его в PFX.

Сохранение сертификата в Key Vault

Для импорта сертификата требуется, чтобы на диске существовал файл в кодировке PEM или PFX, и у вас был доступ к закрытому ключу.

Чтобы отправить сертификат в хранилище ключей, выполните следующие действия.

  1. Перейдите к экземпляру хранилища ключей.

  2. В области навигации выберите сертификаты.

  3. В меню сверху выберите элемент Создать или импортировать.

  4. На странице "Создание сертификата" выберите "Импорт для метода создания сертификата" и укажите значение для имени сертификата.

  5. В разделе Отправка файла сертификата найдите и выберите расположение сертификата.

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

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

    Снимок экрана: диалоговое окно портал Azure Создание сертификата.

Предоставление Azure Spring Apps доступа к хранилищу ключей

Перед импортом сертификата необходимо предоставить Azure Spring Apps доступ к хранилищу ключей.

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

  1. Перейдите к экземпляру хранилища ключей.
  2. В области навигации выберите политики доступа.
  3. В верхнем меню выберите "Создать".
  4. Введите сведения и нажмите кнопку "Добавить ", а затем создайте полицию доступа.
Разрешение секрета Разрешение сертификата Выбор субъекта
Получить, перечислить Получить, перечислить Управление доменом Azure Spring Apps

Примечание.

Если вы не найдете "Управление доменами Azure Spring Apps", найдите "Azure Spring Cloud Domain-Management".

Снимок экрана: страница портал Azure Добавление политики доступа с параметром Get and List, выбранным из разрешений секрета и разрешениями сертификата.

Снимок экрана: страница портал Azure Создание политики доступа с помощью управления доменами Azure Spring Apps, выбранного в раскрывающемся списке

Импорт сертификата в Azure Spring Apps

  1. Перейдите к экземпляру Azure Spring Apps.

  2. В области навигации выберите параметры TLS/SSL.

  3. Выберите "Импорт сертификата хранилища ключей".

    Снимок экрана: портал Azure, на котором показана страница параметров TLS/SSL с выделенной кнопкой импорта сертификата хранилища ключей.

  4. На странице "Выбор сертификата" на странице Azure выберите подписку, Key Vault и сертификат из раскрывающегося списка, а затем нажмите кнопку "Выбрать".

    Снимок экрана: портал Azure, на котором показан сертификат Select certificate from Azure page.

  5. На открывшейся странице "Задать имя сертификата" введите имя сертификата, выберите "Включить автоматическую синхронизацию при необходимости" и нажмите кнопку "Применить". Дополнительные сведения см. в разделе сертификата автоматической синхронизации.

    Снимок экрана: диалоговое окно портал Azure Задание имени сертификата.

  6. После успешного импорта сертификата он отображается в списке сертификатов закрытого ключа.

    Снимок экрана: портал Azure, на котором показана вкладка

Внимание

Чтобы защитить личный домен с помощью этого сертификата, обязательно привязать сертификат к конкретному домену. Дополнительные сведения см. в разделе "Добавление привязки SSL".

Сертификат автоматической синхронизации

Сертификат, хранящийся в Azure Key Vault, иногда обновляется до истечения срока его действия. Аналогичным образом политики безопасности вашей организации для управления сертификатами могут потребовать, чтобы команда DevOps регулярно заменяла сертификаты новыми. После включения автоматической синхронизации сертификата Azure Spring Apps начинает синхронизировать хранилище ключей для новой версии регулярно — обычно каждые 24 часа. Если доступна новая версия, Azure Spring Apps импортирует его, а затем перезагрузит его для различных компонентов с помощью сертификата без каких-либо простоев. В следующем списке показаны затронутые компоненты и соответствующие сценарии:

Когда Azure Spring Apps импортирует или перезагрузит сертификат, создается журнал действий. Чтобы просмотреть журналы действий, перейдите к экземпляру Azure Spring Apps в портал Azure и выберите журнал действий в области навигации.

Примечание.

Функция автоматической синхронизации сертификатов работает с частными сертификатами и общедоступными сертификатами, импортированными из Azure Key Vault. Эта функция недоступна для сертификатов содержимого, которые клиент отправляет.

Вы можете включить или отключить функцию автоматической синхронизации сертификатов при импорте сертификата из хранилища ключей в Azure Spring Apps. Дополнительные сведения см. в разделе "Импорт сертификата в Azure Spring Apps ".

Вы также можете включить или отключить эту функцию для сертификата, который уже импортирован в Azure Spring Apps.

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

  1. Перейдите в список сертификатов закрытого ключа или сертификатов открытого ключа.

  2. Нажмите кнопку с многоточием (...) после столбца автоматической синхронизации , а затем нажмите кнопку "Включить автоматическую синхронизацию " или "Отключить автоматическую синхронизацию".

    Снимок экрана: портал Azure, в котором показан список сертификатов с открытым меню кнопки с многоточием и выбранным параметром

Добавление личного домена

Пользовательское DNS-имя можно сопоставить c Azure Spring Apps с помощью записи CNAME.

Примечание.

Запись A не поддерживается.

Создание записи CNAME

Перейдите к поставщику DNS и добавьте запись CNAME для сопоставления домена <service-name>.azuremicroservices.io. <service-name> Ниже приведено имя экземпляра Azure Spring Apps. Для этих целей поддерживаются подстановочные знаки в именах доменов и поддоменов.

После добавления CNAME страница записей DNS похожа на следующий пример:

Снимок экрана: страница записей DNS, на котором показан экземпляр Azure Spring Apps.

Сопоставление личного домена с приложением службы Azure Spring Apps

Если у вас нет приложения в Azure Spring Apps, следуйте инструкциям из краткого руководства. Развертывание первого приложения в Azure Spring Apps.

Перейдите к странице приложения.

  1. Выберите Личный домен.

  2. Теперь щелкните Добавить личный домен.

    Снимок экрана: страница портал Azure, на котором показана страница личного домена.

  3. Введите полное доменное имя, для которого вы добавили запись CNAME, например www.contoso.com. Убедитесь, что для типа записи hostname задано значение CNAME (<service-name>.azuremicroservices.io)

  4. Выберите элемент Проверить, чтобы активировать кнопку Добавить.

  5. Выберите Добавить.

    Снимок экрана: диалоговое окно портал Azure Добавление личного домена.

У одного приложения может быть несколько доменов, но каждый домен может быть сопоставлен только с одним приложением. При успешном сопоставлении личного домена с приложением он отображается в таблице личного домена.

Снимок экрана: портал Azure, на котором показана таблица личного домена.

Примечание.

Метка Небезопасно для личного домена означает, что он еще не привязан к SSL-сертификату. Любой запрос HTTPS из браузера в личный домен получает сообщение об ошибке или предупреждении.

Добавление привязки SSL

В таблице личных доменов выберите Добавить SSL-привязку, как показано на предыдущем рисунке.

  1. В поле Сертификат выберите или импортируйте сертификат.

  2. Выберите Сохранить.

    Снимок экрана: портал Azure, на котором показана область привязки TLS/SSL.

После успешного добавления привязки SSL состояние домена безопасно: работоспособно.

Снимок экрана: привязка SSL, показывающая состояние работоспособности домена.

Принудительное использование HTTPS

По умолчанию любой пользователь по-прежнему может обращаться к приложению по протоколу HTTP, но вы можете перенаправить все HTTP-запросы на порт HTTPS.

На странице приложения в области навигации выберите личный домен. Затем задайте значение YesHTTPS Only.

Снимок экрана: привязка SSL с выделенным параметром

По завершении операции перейдите по любому из URL-адресов HTTPS, которые указывают на ваше приложение. Обратите внимание, что URL-адреса HTTP теперь не работают.

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