Сопоставление существующего личного домена с 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. Выберите Создать.

    Screenshot of the Create a certificate pane.

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

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

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

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

Примечание.

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

Screenshot of the Azure portal showing the Add Access Policy page for a key vault with Get and List selected from Secret permissions and from Certificate permissions.

Screenshot of the Azure portal showing the Create Access Policy page for a key vault with Azure Spring Apps Domain-management selected from the Select a principal dropdown.

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

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

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

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

    Screenshot of the Azure portal showing the TLS/SSL settings page for an Azure Spring Apps instance, with the Import key vault certificate button highlighted.

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

    Screenshot of the Azure portal showing the Select certificate from Azure page.

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

    Screenshot of the Set certificate name dialog box.

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

    Screenshot of a private key certificate.

Важно!

Чтобы защитить личный домен с помощью этого сертификата, обязательно привязать сертификат к конкретному домену. Дополнительные сведения см. в разделе "Добавление привязки 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. Нажмите кнопку с многоточием (...) после столбца автоматической синхронизации , а затем нажмите кнопку "Включить автоматическую синхронизацию " или "Отключить автоматическую синхронизацию".

    Screenshot of the Azure portal that shows a certificate list with the ellipsis button menu open and the Enable auto sync option selected.

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

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

Примечание.

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

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

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

Screenshot of a DNS records page.

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

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

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

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

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

    Screenshot of a custom domain page.

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

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

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

    Screenshot of the Add custom domain pane.

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

Screenshot of the custom domain table.

Примечание.

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

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

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

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

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

    Screenshot of the SSL Binding pane.

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

Screenshot of an SSL binding.

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

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

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

Screenshot of an SSL binding with the Https Only option highlighted.

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

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