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


Пользовательские доменные имена и собственные сертификаты в приложениях контейнеров Azure

Приложения контейнеров Azure позволяют привязать один или несколько пользовательских доменов к приложению-контейнеру.

  • Каждое доменное имя должно быть связано с TLS/SSL-сертификатом. Вы можете отправить собственный сертификат или использовать бесплатный управляемый сертификат.
  • Сертификаты применяются к среде приложения-контейнера и привязаны к отдельным приложениям контейнеров. Для добавления сертификатов необходимо иметь ролевой доступ к среде.
  • Требуются сертификаты домена SNI (идентификация имен сервера).
  • Для приложения-контейнера необходимо активировать Ingress.

Примечание.

Если настроить суффикс пользовательской среды DNS (система доменных имен), в приложение контейнера нельзя добавить личный домен, содержащий этот суффикс.

Добавление личного домена и сертификата

Внимание

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

  1. Перейдите в приложение-контейнер в портал Azure.

  2. Убедитесь, что в приложении включен входящий трафик, выбрав "Входящий трафик" в разделе "Сеть " в левой области. Если служба входа не включена, включите её, выполнив следующие действия:

    1. Установите HTTP Ingress на Включено.
    2. Выберите желаемый параметр входящего трафика.
    3. Установите тип входа на HTTP.
    4. Введите целевой порт.
    5. Выберите Сохранить.
  3. В разделе "Сеть" выберите "Личные домены".

  4. Нажмите кнопку Добавить личный домен.

  5. В области "Добавление личного домена и сертификата " в разделе TLS/SSL-сертификат выберите "Добавить собственный сертификат".

  6. В поле "Домен" введите домен, который требуется добавить.

  7. Выберите " Добавить сертификат".

  8. В области "Добавить сертификат " в поле "Источник " выберите " Отправить сертификат" (PFX) и найдите файл сертификата, который требуется отправить.

  9. Выберите Проверить.

  10. После успешной проверки нажмите кнопку "Добавить".

  11. В области "Добавление личного домена и сертификата " в разделе "Сертификат" выберите только что добавленный сертификат.

  12. Выберите тип записи hostname в зависимости от типа домена:

    Тип домена Тип записей Примечания.
    Вершинный домен Запись Основной домен — это домен на корневом уровне домена. Например, если ваша зона DNS имеет contoso.comзначение, то contoso.com является доменом вершины.
    Поддомен CNAME Поддомен — это домен, который является частью другого домена. Например, если ваша зона DNS является contoso.com, то www.contoso.com это пример поддомена, который можно настроить в зоне.
  13. Используя поставщик DNS, на котором размещен домен, создайте записи DNS на основе выбранного типа записи имени узла , используя значения, показанные в разделе проверки домена . Записи направляют домен на ваше приложение-контейнер и подтверждают, что вы им владеете. Настройка зависит от того, используете ли вы пользовательские домены с функцией частной конечной точки:

    • Если выбрана запись A, создайте следующие записи DNS:

      Тип записей Хост Значение
      а @ IP-адрес среды Container Apps.
      ТЕКСТ asuid Код проверки домена.
    • Если вы выбрали CNAME, создайте следующие записи DNS:

      Тип записей Хост Значение
      CNAME Поддомен (например, www) Созданный домен приложения-контейнера.
      ТЕКСТ asuid. за которым следует поддомен (например, asuid.www) Код проверки домена.
  14. Выберите Проверить.

  15. После успешной проверки нажмите кнопку "Добавить".

  16. После завершения операции вы увидите доменное имя в списке настраиваемых доменов с состоянием Secured. Перейдите к домену, чтобы убедиться, что он доступен.

Примечание.

Для приложений контейнеров во внутренних средах приложений контейнеров дополнительная конфигурация необходима для использования пользовательских доменов с ингрессом в области виртуальной сети.

Приложения для контейнеров поддерживают апекс-домены и поддомены. Для каждого типа домена требуется другой тип записи DNS и метод проверки:

Тип домена Тип записей Метод проверки Примечания.
Вершинный домен Запись HTTP Основной домен — это домен на корневом уровне домена. Например, если ваша зона DNS имеет contoso.comзначение, то contoso.com является доменом вершины.
Поддомен CNAME CNAME Поддомен — это домен, который является частью другого домена. Например, если ваша зона DNS является contoso.com, то www.contoso.com это пример поддомена, который можно настроить в зоне.
  1. Войдите в Azure с помощью Azure CLI:

    az login
    
  2. Установите расширение "Приложения контейнеров Azure" для интерфейса командной строки:

    az extension add --name containerapp --upgrade
    
  3. Задайте следующие переменные среды. Замените <PLACEHOLDERS> своими значениями.

    RESOURCE_GROUP = "<RESOURCE_GROUP>"
    CONTAINER_APP = "<CONTAINER_APP>"
    ENVIRONMENT = "<ENVIRONMENT>"
    TARGET_PORT = "<TARGET_PORT>"
    DOMAIN_NAME = "<DOMAIN_NAME>"
    CERTIFICATE_LOWERCASE_NAME = "<CERTIFICATE_LOWERCASE_NAME>"
    CERTIFICATE_LOCAL_PATH = "<CERTIFICATE_LOCAL_PATH>"
    CERTIFICATE_PASSWORD = "<CERTIFICATE_PASSWORD>"
    
    • Замените <CERTIFICATE_LOCAL_PATH> на локальный путь к файлу вашего сертификата.
    • Замените <CERTIFICATE_LOWERCASE_NAME> на имя сертификата с маленькой буквы, которое уникально в данной среде.
    • Замените <TARGET_PORT> портом, на который прослушивается приложение контейнера.
  4. Убедитесь, что в приложении-контейнере включён вход HTTP:

    az containerapp ingress show \
        -n $CONTAINER_APP \
        -g $RESOURCE_GROUP
    

    Если вход не включен, включите его:

    az containerapp ingress enable \
        -n $CONTAINER_APP \
        -g $RESOURCE_GROUP \
        --type external \
        --target-port $TARGET_PORT \
        --transport auto
    
  5. Если вы настраиваете домен вершины, получите IP-адрес среды контейнерных приложений:

    az containerapp env show \
        -n $ENVIRONMENT \
        -g $RESOURCE_GROUP \
        -o tsv \
        --query "properties.staticIp"
    
  6. Если вы настраиваете поддомен, получите автоматически созданный домен приложения контейнера:

    az containerapp show \
        -n $CONTAINER_APP \
        -g $RESOURCE_GROUP \
        -o tsv \
        --query "properties.configuration.ingress.fqdn"
    
  7. Получите код проверки домена:

    az containerapp show \
        -n $CONTAINER_APP \
        -g $RESOURCE_GROUP \
        -o tsv \
        --query "properties.customDomainVerificationId"
    
  8. Используя поставщик DNS, на котором размещен домен, создайте записи DNS на основе выбранного типа записи, используя значения, отображаемые в разделе проверки домена . Записи направляют домен на ваше приложение-контейнер и подтверждают, что вы им владеете. Настройка зависит от того, используете ли вы пользовательские домены с функцией частной конечной точки:

    • Если выбрана запись A, создайте следующие записи DNS:

      Тип записей Хост Значение
      а @ IP-адрес среды Container Apps.
      ТЕКСТ asuid Код проверки домена.
    • Если вы выбрали CNAME, создайте следующие записи DNS:

      Тип записей Хост Значение
      CNAME Поддомен (например, www) Созданный домен приложения-контейнера.
      ТЕКСТ asuid. за которым следует поддомен (например, asuid.www) Код проверки домена.
  9. Загрузите сертификат в вашу среду.

    az containerapp env certificate upload \
        -g $RESOURCE_GROUP \
        --name $ENVIRONMENT \
        --certificate-file $CERTIFICATE_LOCAL_PATH \
        --password $CERTIFICATE_PASSWORD \
        --certificate-name $CERTIFICATE_LOWERCASE_NAME
    
  10. Привязать сертификат и домен к приложению контейнера:

    az containerapp hostname bind \
        --hostname $DOMAIN_NAME \
        -g $RESOURCE_GROUP \
        -n $CONTAINER_APP \
        --environment $ENVIRONMENT \
        --certificate $CERTIFICATE_LOWERCASE_NAME \
        --validation-method <VALIDATION_METHOD>
    
    • Если вы настраиваете A-запись, замените <VALIDATION_METHOD> на HTTP.

    • Если вы настраиваете CNAME, замените <VALIDATION_METHOD> на CNAME.

    Может потребоваться несколько минут для выдачи сертификата и добавления домена в приложение контейнера.

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

Управление сертификатами

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

Окружение

В области "Сертификаты " среды "Приложения-контейнеры" отображается таблица, содержащая все сертификаты, связанные с средой. Перейдите в среду и выберите "Сертификаты" в разделе "Сеть".

Вы можете управлять сертификатами, выполнив следующие действия:

Действие Описание
Добавить Нажмите кнопку "Добавить сертификат", чтобы добавить новый сертификат.
Удалить Щелкните значок корзины, чтобы удалить сертификат.
Обновить Поле состояния работоспособности таблицы указывает, что срок действия сертификата истекает в течение 60 дней после истечения срока действия. Чтобы обновить сертификат, выберите ссылку "Обновить сертификат ", чтобы отправить новый сертификат.

Контейнерное приложение

В области "Пользовательские домены " приложения-контейнера отображается список пользовательских доменов, связанных с приложением контейнера. В области слева в разделе "Сеть" выберите "Личные домены".

Вы можете управлять сертификатами для отдельного доменного имени, нажав кнопку с многоточием (...), которая открывает окно привязки сертификата. В следующем окне можно выбрать сертификат для привязки к выбранному доменному имени.

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