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


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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Снимок экрана, на котором показана панель управляемых сертификатов с новым сертификатом.

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

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

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

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

  2. В левой области приложения выберите "Сертификаты>" "Принести собственные сертификаты" (PFX)>Add certificate.

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

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

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

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

    Снимок экрана: страница управления приложениями с сертификатами, создание собственных сертификатов (PFX) и выбор сертификата службы приложений. На панели

    После завершения операции сертификат появится в списке "Принести собственные сертификаты" (PFX).

    Снимок экрана, показывающий панель «Принесите свои сертификаты (.pfx)» со списком приобретенного сертификата.

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

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

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

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

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

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

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

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

az role assignment create --role "Key Vault Certificate User" --assignee "abfa0a7c-a6b6-4736-8310-5855508787cd" --scope "/subscriptions/{subscriptionid}/resourcegroups/{resource-group-name}/providers/Microsoft.KeyVault/vaults/{key-vault-name}"

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

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

  2. В левой области приложения выберите "Сертификаты>" "Принести собственные сертификаты" (PFX)>Add certificate.

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

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

    Снимок экрана: страница управления приложениями с сертификатами, создание собственных сертификатов (PFX) и импорт из Key Vault.

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

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

    После завершения операции сертификат появится в списке "Принести собственные сертификаты" (PFX). Если импорт завершается ошибкой, сертификат не соответствует требованиям для Службы приложений.

    Снимок экрана, на котором показана панель

    Если вы обновляете сертификат в 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 (PFX).

    Снимок экрана: страница управления приложениями с сертификатами, добавление собственных сертификатов (PFX) и выбор PFX-сертификата.

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

    Настройка Описание
    PFX-файл сертификата Выберите PFX-файл.
    Пароль сертификата Введите пароль, созданный при экспорте PFX-файла.
    Удобное имя сертификата Имя сертификата, отображаемое в веб-приложении.
  4. После того как вы закончите выбор, нажмите Выбрать>, Проверить, а затем выберите Добавить.

    После завершения операции сертификат появится в списке "Принести собственные сертификаты" (PFX).

    Снимок экрана, показывающий панель

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

Загрузите публичный сертификат

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

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

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

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

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

  3. Для помощи в загрузке сертификата .cer используйте следующую таблицу:

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

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

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

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

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

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

Продление переданного сертификата

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Можно ли использовать сертификаты службы приложений для других служб?

Да. Вы можете экспортировать и использовать сертификаты службы приложений с помощью шлюза приложений Azure или других служб. Дополнительные сведения см. в статье блога о создании локальной копии PFX-сертификата службы приложений.