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


Добавление TLS/SSL-сертификатов и управление ими в службе приложений Azure

Примечание.

Начиная с 1 июня 2024 г. все созданные Служба приложений приложения будут иметь возможность создать уникальное имя узла по умолчанию с помощью соглашения <app-name>-<random-hash>.<region>.azurewebsites.netоб именовании. Существующие имена приложений останутся неизменными.

Пример: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Дополнительные сведения см. в разделе "Уникальное имя узла по умолчанию" для ресурса Служба приложений.

Вы можете добавить цифровые сертификаты безопасности для использования в коде приложения или для защиты пользовательских DNS-имен в Службе приложений Azure, что обеспечивает работу службы с высокой масштабируемостью и размещением веб-узлов с автоматическим исправлением. Эти частные или общедоступные сертификаты, которые в настоящее время называются сертификатами TLS, также ранее известные как сертификаты SSL, помогают защитить интернет-соединения путем шифрования данных, передаваемых между вашим браузером, посещаемыми вами веб-сайтами и сервером веб-сайта.

В следующей таблице перечислены варианты добавления сертификатов в Службу приложений:

Вариант Описание
Создание управляемого сертификата Службы приложений Частный сертификат, который можно бесплатно и легко использовать, если требуется только защитить личный домен в Службе приложений.
Импорт сертификата Служба приложений Закрытый сертификат, управляемый Azure. Он сочетает простоту автоматического управления сертификатами и гибкость возможностей продления и экспорта.
Импорт сертификата из Key Vault Это удобно, если вы используете Azure Key Vault для управления сертификатами PKCS12. Ознакомьтесь с требованиями к закрытым сертификатам.
Передача закрытого сертификата Если у вас уже есть закрытый сертификат от стороннего поставщика, вы можете его передать. Ознакомьтесь с требованиями к закрытым сертификатам.
Передача открытого сертификата Общедоступные сертификаты не используются для защиты пользовательских доменов, но их можно загрузить в код, если им нужен доступ к удаленным ресурсам.

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

Требования к закрытым сертификатам

Бесплатный управляемый сертификат службы приложений и сертификат службы приложений уже удовлетворяют требованиям службы приложений. Если вы решили передать или импортировать закрытый сертификат в Службу приложений, то этот сертификат должен соответствовать следующим требованиям. Он:

  • должен быть экспортирован как защищенный паролем PFX-файл, зашифрованный с помощью TRIPLE DES;
  • Содержит закрытый ключ длиной не менее 2048 битов
  • должен содержать все промежуточные сертификаты и корневой сертификат в цепочке сертификатов.

Для защиты личного домена в привязке TLS к сертификату предъявляются дополнительные требования:

Примечание.

Сертификаты с шифрованием на основе эллиптических кривых (ECC) работают со Службой приложений, но не рассматриваются в этой статье. За конкретными указаниями по созданию сертификатов ECC, обратитесь к своему центру сертификации.

Примечание.

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

Вы можете добавить до 1000 частных сертификатов на веб-пространство.

Создание бесплатного управляемого сертификата

Бесплатный управляемый сертификат Службы приложений — это полноценное решение для защиты настраиваемого DNS-имени в Службе приложений. Без каких-либо действий этот сертификат TLS/SSL-сервера полностью управляется Служба приложений и автоматически обновляется непрерывно в течение шестимесячного увеличения, 45 дней до истечения срока действия, если необходимые условия, настроенные вами, остаются неизменными. Все соответствующие привязки будут обновлены с учетом продленного сертификата. Вам нужно создать сертификат и привязать его к личному домену, делегировав Службе приложений выполнение остальных действий.

Внимание

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

Бесплатные сертификаты выдаются DigiCert. Для некоторых доменов необходимо явно разрешить DigiCert как издателя сертификата, создав запись домена CAA со значением 0 issue digicert.com.

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

Бесплатный сертификат имеет следующие ограничения:

  • не поддерживает групповые сертификаты;
  • не поддерживает использование в качестве сертификата клиента с помощью отпечатка сертификата, который планируется для отмены и удаления;
  • не поддерживает частные службы DNS;
  • не экспортируется;
  • не поддерживается в Среде службы приложений (ASE);
  • поддерживает только буквы, цифры, дефисы (-) и точки (.).
  • Поддерживаются только пользовательские домены длиной до 64 символов.
  • Должен иметь запись A, указывающую на IP-адрес веб-приложения.
  • Должен находиться в приложениях, которые являются общедоступными.
  • Не поддерживается с корневыми доменами, интегрированными с Диспетчером трафика.
  • Все указанные выше требования должны выполняться для успешной выдачи и возобновления действия сертификатов.
  1. На портале Azure в меню слева выберите Службы приложений><имя_приложения>.

  2. В меню навигации приложения выберите сертификаты. В области управляемых сертификатов выберите "Добавить сертификат".

    Снимок экрана: меню приложения с выбранными

  3. Выберите личный домен для бесплатного сертификата и нажмите кнопку "Проверить". После завершения проверки нажмите кнопку "Добавить". Вы можете создать только один управляемый сертификат для каждого поддерживаемого личного домена.

    После завершения операции сертификат появится в списке управляемых сертификатов .

    Снимок экрана: панель

  4. Чтобы защитить личный домен с помощью этого сертификата, необходимо создать привязку к сертификату. Выполните действия, описанные в статье "Защита пользовательского DNS-имени с помощью привязки TLS/SSL в службе приложение Azure".

Импорт сертификата Служба приложений

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

  1. На портале Azure в меню слева выберите Службы приложений><имя_приложения>.

  2. В меню навигации приложения выберите "Сертификаты>" "Принести собственные сертификаты" (PFX)>Добавить сертификат.

  3. В поле "Источник" выберите "Импорт Служба приложений сертификат".

  4. В Служба приложений сертификат выберите только что созданный сертификат.

  5. В понятном имени сертификата присвойте сертификату имя в приложении.

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

    Снимок экрана: страница управления приложениями с выбранным параметром

    Когда операция завершится, сертификат появится в списке собственных сертификатов .

    Снимок экрана: панель

  7. Чтобы защитить личный домен с помощью этого сертификата, необходимо создать привязку к сертификату. Выполните действия, описанные в статье "Защита пользовательского DNS-имени с помощью привязки TLS/SSL в службе приложение Azure".

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

Если для управления сертификатами используется Azure Key Vault, то можно импортировать сертификат PKCS12 из Key Vault в Службу приложений, если он соответствует требованиям.

Авторизация Службы приложений на чтение из хранилища

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

Примечание.

В настоящее время портал Azure не позволяет настроить сертификат Служба приложений в Key Vault для использования модели RBAC. Однако для выполнения этой настройки можно использовать Azure CLI, Azure PowerShell или развертывание шаблона ARM.

Поставщик ресурсов Идентификатор приложения субъекта-службы / назначаемый Роль RBAC хранилища ключей
Служба приложений Microsoft Azure или Microsoft.Azure.WebSites - abfa0a7c-a6b6-4736-8310-5855508787cd для общедоступной облачной среды Azure

- 6a02c803-dafd-4136-b4c3-5a6f318b4714для облачной среды Azure для государственных организаций
Пользователь сертификата

Идентификатор или значение приложения субъекта-службы — это идентификатор поставщика ресурсов Служба приложений. Чтобы узнать, как авторизовать разрешения хранилища ключей для поставщика ресурсов Служба приложений с помощью политики доступа, обратитесь к документации по управлению доступом к ключам Key Vault, сертификатам и секретам с помощью документации по управлению доступом на основе ролей Azure.

Примечание.

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

Импорт сертификата из хранилища в приложение

  1. На портале Azure в меню слева выберите Службы приложений><имя_приложения>.

  2. В меню навигации приложения выберите "Сертификаты>" "Принести собственные сертификаты" (PFX)>Добавить сертификат.

  3. В источнике выберите "Импорт из Key Vault".

  4. Выберите сертификат хранилища ключей.

    Снимок экрана: страница управления приложениями с выбранными сертификатами ,

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

    Параметр Description
    Подписка Подписка, связанная с хранилищем ключей.
    Key vault Хранилище ключей с сертификатом, который необходимо импортировать.
    Сертификат В этом списке выберите сертификат PKCS12, который находится в хранилище. Все сертификаты PKCS12 в хранилище отображаются с отпечатком, но не все поддерживаются в Службе приложений.
  6. После завершения выбора нажмите кнопку "Выбрать", "Проверить", а затем "Добавить".

    Когда операция завершится, сертификат появится в списке собственных сертификатов . Если импорт завершается ошибкой, сертификат не соответствует требованиям для Службы приложений.

    Снимок экрана: панель

    Примечание.

    Если вы обновляете сертификат в Key Vault, используя новый сертификат, Служба приложений автоматически синхронизирует его в течение 24 часов.

  7. Чтобы защитить личный домен с помощью этого сертификата, необходимо создать привязку к сертификату. Выполните действия, описанные в статье "Защита пользовательского DNS-имени с помощью привязки TLS/SSL в службе приложение Azure".

Передача закрытого сертификата

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

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

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

  1. В текстовом редакторе откройте каждый полученный сертификат.

  2. Чтобы сохранить объединенный сертификат, создайте файл с именем mergedcertificate.crt.

  3. Скопируйте содержимое каждого сертификата в этот файл. Обязательно придерживайтесь последовательности сертификатов, которая указана в цепочке сертификатов начиная с вашего сертификата и заканчивая корневым сертификатом, например:

    -----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, вы создали файл закрытого ключа.

Примечание.

OpenSSL версии 3 изменил шифр по умолчанию с 3DES на AES256, но это может быть переопределено в командной строке -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1. OpenSSL версии 1 использует 3DES в качестве значения по умолчанию, поэтому созданные PFX-файлы поддерживаются без особых изменений.

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

    openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>  
    
  2. При появлении запроса укажите пароль для операции экспорта. При отправке TLS/SSL-сертификата в Служба приложений позже необходимо указать этот пароль.

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

Передача сертификата в Службу приложений

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

  1. На портале Azure в меню слева выберите Службы приложений><имя_приложения>.

  2. В меню навигации приложения выберите "Сертификаты>", чтобы добавить собственные сертификаты (PFX)>Upload Certificate.

    Снимок экрана:

  3. Чтобы помочь отправить PFX-сертификат, используйте следующую таблицу:

    Параметр Description
    PFX-файл сертификата Выберите PFX-файл.
    Пароль сертификата Введите пароль, созданный при экспорте PFX-файла.
    Понятное имя сертификата Имя сертификата, которое будет отображаться в веб-приложении.
  4. После завершения выбора нажмите кнопку "Выбрать", "Проверить", а затем "Добавить".

    Когда операция завершится, сертификат появится в списке собственных сертификатов .

    Снимок экрана: панель

  5. Чтобы защитить личный домен с помощью этого сертификата, необходимо создать привязку к сертификату. Выполните действия, описанные в статье "Защита пользовательского DNS-имени с помощью привязки TLS/SSL в службе приложение Azure".

Передача открытого сертификата

Поддерживаются открытые сертификаты в формате CER.

Примечание.

После отправки общедоступного сертификата в приложение он доступен только приложением, в которое оно отправляется. Общедоступные сертификаты должны быть отправлены в каждое отдельное веб-приложение, которому требуется доступ. Сведения о конкретных сценариях Среда службы приложений см. в документации по сертификатам и Среда службы приложений

Вы можете отправлять до 1000 общедоступных сертификатов на Служба приложений план.

  1. На портале Azure в меню слева выберите Службы приложений><имя_приложения>.

  2. В меню навигации приложения выберите сертификаты>открытого ключа (.cer)>Добавить сертификат.

  3. Чтобы помочь отправить сертификат .cer, используйте следующую таблицу:

    Параметр Description
    CER-файл сертификата Выберите файл .cer.
    Понятное имя сертификата Имя сертификата, которое будет отображаться в веб-приложении.
  4. Закончив, нажмите кнопку Добавить.

    Снимок экрана: имя и сертификат открытого ключа для загрузки.

  5. После отправки сертификата скопируйте отпечаток сертификата и ознакомьтесь с разделом Открытие доступа к сертификату.

Продление срока действия сертификата

До истечения срока действия сертификата добавьте обновленный сертификат в Служба приложений и обновите все привязки сертификатов, в которых процесс зависит от типа сертификата. Например, сертификат, импортированный из Key Vault, включая сертификат Службы приложений, автоматически синхронизируется со Службой приложений каждые 24 часа и обновляет привязку TLS/SSL при продлении сертификата. Для переданного сертификата не выполняется автоматическое обновление привязки. В зависимости от сценария просмотрите соответствующий раздел:

Обновление отправленного сертификата

При замене сертификата с истекающим сроком действия способ обновления привязки сертификата новым сертификатом может отрицательно сказаться на работе пользователя. Например, ваш входящий IP-адрес может измениться при удалении привязки, даже если эта привязка основана на IP-адресе. Этот результат особенно важен при обновлении сертификата, который уже находится в привязке на основе IP. Чтобы избежать изменения IP-адреса вашего приложения и избежать простоев вашего приложения из-за ошибок HTTPS, выполните следующие действия в указанной последовательности:

  1. Передайте новый сертификат.

  2. Перейдите на страницу "Личные домены " для приложения, нажмите кнопку ... actions и выберите "Обновить привязку".

  3. Выберите новый сертификат и нажмите кнопку "Обновить".

  4. Удалите существующий сертификат.

Продление сертификата, импортированного из Azure Key Vault

Примечание.

Чтобы обновить сертификат Служба приложений, см. раздел "Продление сертификата Служба приложений".

Чтобы обновить сертификат, импортированный в Службу приложений из Key Vault, ознакомьтесь со статьей Продление сертификатов Azure Key Vault.

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

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

  2. В разделе "Перенос собственных сертификатов ( PFX)" нажмите кнопку ... details для импортированного сертификата хранилища ключей и нажмите кнопку "Синхронизация".

Часто задаваемые вопросы

Как автоматизировать добавление собственных сертификатов в приложение?

Можно ли использовать сертификат частного ЦС (центра сертификации) для входящего TLS в приложении?

Вы можете использовать частный сертификат ЦС для входящего TLS в Среда службы приложений версии 3 (ASEv3). Это невозможно в Служба приложений (мультитенантный). Дополнительные сведения о Служба приложений мультитенантной и однотенантной версии 3 см. в Среда службы приложений версии 3 и Служба приложений общедоступном многотенантном сравнении.

Можно ли выполнять исходящие вызовы с помощью сертификата клиента частного ЦС (центра сертификации) из приложения?

Это поддерживается только для приложений контейнеров Windows в мультитенантных Служба приложений. Кроме того, можно выполнять исходящие вызовы с помощью частного сертификата клиента ЦС с приложениями на основе кода и контейнерами в Среда службы приложений версии 3 (ASEv3). Дополнительные сведения о Служба приложений мультитенантной и однотенантной версии 3 см. в Среда службы приложений версии 3 и Служба приложений общедоступном многотенантном сравнении.

Можно ли загрузить сертификат частного ЦС (центра сертификации) в моего Служба приложений доверенного корневого хранилища?

Вы можете загрузить собственный сертификат ЦС в доверенное корневое хранилище в Среда службы приложений версии 3 (ASEv3). Невозможно изменить список доверенных корневых сертификатов в Служба приложений (мультитенантный). Дополнительные сведения о Служба приложений мультитенантной и однотенантной версии 3 см. в Среда службы приложений версии 3 и Служба приложений общедоступном многотенантном сравнении.

Дополнительные ресурсы