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

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

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

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

Примечание

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

предварительные требования

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

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

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

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

Примечание

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

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

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

Важно!

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

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

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

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

  • не поддерживает групповые сертификаты;
  • не поддерживает использование в качестве сертификата клиента с помощью отпечатка сертификата, который планируется для отмены и удаления;
  • не поддерживает частные службы DNS;
  • не экспортируется;
  • не поддерживается в Среде службы приложений (ASE);
  • поддерживает только буквы, цифры, дефисы (-) и точки (.).
  • Должен иметь запись 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 в Службу приложений, если он соответствует требованиям.

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

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

Примечание

В данный момент сертификаты Key Vault поддерживают только политику доступа к Key Vault, но не модель RBAC.

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

— Для облачной среды Azure для государственных организаций используйте 6a02c803-dafd-4136-b4c3-5a6f318b4714.
Получить Получить
Microsoft.Azure.CertificateRegistration Получить
Список
Присвойте параметру
Удалить
Получить
Список

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

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

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

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

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

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

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

    Параметр Описание
    Подписка Подписка, связанная с хранилищем ключей.
    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)>Отправка сертификата.

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

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

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

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

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

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

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

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

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

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

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

    Параметр Описание
    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 для импортированного сертификата хранилища ключей и выберите Синхронизировать.

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

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

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