Перейти к содержимому

6.1. Поддержка протокола SCEP

Aladdin Enterprise CAИнтеграцииAladdin Enterprise CA

eCA-RA реализует серверный компонент по протоколу SCEP[1] (далее SCEP-сервер eCA-RA). SCEP-сервер eCA-RA поддерживает возможность подключения к нему клиентов по протоколам HTTP и HTTPS.

Доступ клиентов к SCEP-серверу eCA-RA осуществляется в контексте SCEP-профилей Центров сертификации подключённого eCA-CA (см. раздел Вкладка “SCEP”). Чтобы Центр сертификации подключённого eCA-CA, мог быть использован в качестве издателя сертификатов по протоколу SCEP, необходимо для него создать SCEP-профиль.

При создании SCEP-профиля eCA-RA выполняет следующие действия:

  • автоматически генерирует и назначает создаваемому профилю идентификатор в формате UUID;

  • выпускает на Центре сертификации сертификат с закрытым ключом (PKCS#12) по шаблону “SCEP Management” (технологический сертификат SCEP-профиля), при этом:

    • сертификат не привязан к какому-либо субъекту;

    • имеет в поле “CN” значение “Технологический сертификат SCEP-профиля ID={profileId}”, где profileId - идентификатор созданного SCEP-профиля;

    • алгоритм и длина ключа у сертификата соответствуют алгоритму и длине ключа Центра сертификации, на котором осуществляется выпуск;

    • пароль от создаваемого контейнера автоматически формирует eCA-RA и записывает его в свою базу данных в зашифрованном виде.

  • экспортирует созданный контейнер закрытого ключа и сохранять его в своей базе данных.

В дальнейшем технологический сертификат SCEP-профиля используется в обработке запросов по протоколу SCEP (cм. раздел Обработка запросов по протоколу SCEP).

Для настройки SCEP-сервера eCA-RA выполните следующие шаги:

  • В разделе “Управление” на вкладке “SCEP” создайте SCEP-политики (см. раздел Создание SCEP-политики). SCEP-политика представляет собой совокупность “ChallengePassword + Шаблон” и служит для управления шаблонами, которые используются в рамках реализации сценария выпуска сертификата по протоколу SCEP.

  • В разделе “Управление” на вкладке “SCEP” создайте новый SCEP-профиль (см. раздел Создание SCEP-профиля). При его создании задайте Центр сертификации подключённого eCA-CA и алгоритм шифрования ответов SCEP-сервера.

После этого будет доступен соответствующий SCEP-сервер, доступный по адресу PROTOCOL://<HOSTNAME>/scep-service/profiles/{profileId}/engine (про получение URL SCEP-сервера eCA-RA см. раздел Редактирование SCEP-профиля), где:

  • PROTOCOL - протокол, по которому осуществляется подключение (http или https) Возможность подключения по http определяется параметром allow_scep_http конфигурационного файла;

  • HOSTNAME - адрес сервера eCA-RA;

  • profileId - идентификатор существующего SCEP-профиля.

  • Далее URL созданного SCEP-профиля следует использовать при добавлении конфигурации SCEP-сервера. Получить URL можно с помощью функции копирования URL адреса SCEP-профиля - см. раздел Редактирование SCEP-профиля. Пример команды certmonger [2] для добавления SCEP-сервера[3]:

Окно терминала
getcert add-scep-ca -c CA_Name -u SCEP_URL

Для проверки следует использовать команду с правами суперпользователя:

Окно терминала
getcert list-cas -c Name

eCA-RA реализовывает обработку следующих запросов клиента по протоколу SCEP[4]:

  • PKCSReq;

  • CertPoll;

  • RenewalReq;

  • GetCert;

  • GetCRL;

  • GetCACert;

  • GetCACaps.

eCA-RA по серийному номеру сертификата клиента (присутствует в составе сообщения формата PKCS#7) и идентификатору Центра сертификации (определяется автоматически на основании связи используемого клиентом SCEP-профиля и Центра сертификации) осуществляет поиск заявки на данный сертификат клиента в своей базе данных среди выполненных заявок (заявка должна иметь статус “Выполнена”). Далее в зависимости от результатов поиска заявки выполняется один из следующих сценариев:

  • Если выполненная заявка на данный сертификат клиента найдена, eCA-RA создаёт новую заявку на основании запроса на сертификат из состава расшифрованного сообщения. Заявка создаётся для субъекта и по шаблону, указанному в найденной заявке. Выпуск сертификата по созданной заявке осуществляется на Центре сертификации Aladdin eСA, ассоциированном с используемым пользователем SCEP-профилем.

    • Если по созданной заявке успешно выпущен сертификат, eCA-RA в ответном сообщении возвращает клиенту выпущенный сертификат (SUCCES).

    • Если созданная заявка ожидает подтверждения или по ней произошла ошибка выпуска, eCA-RA возвращает клиенту сообщение о том, что заявка находится в обработке (PENDING).

    • Если заявка не была создана или созданная заявка отклонена, eCA-RA возвращает клиенту сообщение об отклонении запроса (FAILURE).

  • Если выполненная заявка на данный сертификат клиента не найдена, eCA-RA создаёт новую заявку на основании запроса на сертификат из состава расшифрованного сообщения. Шаблон, который используется при создании заявки, определяется на основании SCEP-политик по значению ChallengePassword, указанному в запросе на сертификат. Выпуск сертификата по созданной заявке осуществляется на Центре сертификации, ассоциированном с используемым пользователем SCEP-профилем.

    • Если в запросе на сертификат не указан ChallengePassword, и среди SCEP-политик отсутствует политика на “пустой” ChallengePassword, eCA-RA возвращает клиенту сообщение об отклонении запроса (FAILURE).

    • Если по созданной заявке успешно выпущен сертификат, eCA-RA в ответном сообщении возвращает клиенту выпущенный сертификат (SUCCES).

    • Если созданная заявка ожидает подтверждения или по ней произошла ошибка выпуска, eCA-RA возвращает клиенту сообщение о том, что заявка находится в обработке (PENDING).

    • Если заявка не была создана или созданная заявка отклонена, eCA-RA возвращает клиенту сообщение об отклонении запроса (FAILURE).

eCA-RA записывает в свою базу данных “TransactionId” для каждой заявки, созданной в ходе обработки запросов “PKCSReq/RenewalReq”.

eCA-RA осуществляет поиск в свой базе данных заявки, у которой “TransactionId” соответствует указанному в сообщении, и определять ее статус.

  • Если по найденной заявке успешно выпущен сертификат, eCA-RA в ответном сообщении возвращает клиенту выпущенный сертификат по данной заявке (SUCCES).

  • Если данная заявка ожидает подтверждения или по ней произошла ошибка выпуска, eCA-RA возвращает клиенту сообщение о том, что заявка находится в обработке (PENDING).

  • Если данная заявка отклонена или не была найдена, eCA-RA должен возвращать клиенту сообщение об ошибке (FAILURE).

eCA-RA осуществляет поиск в свой базе данных заявки, по которой выпущенный сертификат имеет серийный номер, соответствующий указанному в сообщении серийному номеру. Поиск осуществляется только среди заявок, сертификат по которым выпущен eCA-CA, SCEP-профиль которого используется клиентом.

Если такая заявка найдена, eCA-RA в ответном сообщении возвращает клиенту выпущенный по данной заявке сертификат (SUCCES), иначе - сообщение об ошибке (FAILURE).

eCA-RA в ответном сообщении возвращает CRL eCA-CA, SCEP-профиль которого используется клиентом.

eCA-RA в ответном сообщении возвращает цепочку сертификатов технологического сертификата SCEP-профиля, используемого клиентом.

eCA-RA возвращает клиенту сообщение формата “CA Capabilities Response” в соответствии с RFC8894, перечисляющее следующие возможности SCEP-сервера:

  • AES;

  • DES3;

  • POSTPKIOperation;

  • Renewal;

  • SHA-1;

  • SHA-256;

  • SHA-512;

  • SCEPStandart.

[1]. Протокол SCEP описан в RFC8894, см.: https://datatracker.ietf.org/doc/html/rfc8894

[2]. Certmonger --- это служба, которая управляет сертификатами и их жизненным циклом в системах Linux.

[3]. Для выполнения команд ниже необходимо, чтобы был установлен пакет certmonger.

[4]. Запрос “GetNextCACert” на данный момент не поддерживается SCEP-сервером eCA-RA