CMP (certificate management protocol)

Протокол управления сертификатами (CMP) — один из видов сетевых протоколов, который применяется в целях получения и регулирования цифровых сертификатов X.509 в Public Key Infrastructure. Он поддерживает все типы криптографии. Сообщения CMP, имеющие кодировку ASN.1, обеспечивают независимость протокола от транспортного механизма, что предоставляет возможности сквозной безопасности.

Как работает CMP

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

К поддержке служб PKI для CMP применяются следующие ограничения:

  1. Службы PKI поддерживают только часть сообщений CMP и только некоторые поля в этих сообщениях.
  2. Службы PKI поддерживают только протокол HTTP для сообщений CMP.
  3. Службы PKI реализуют CMP через программу CGI.

Сообщение tcp отправляется в программу PKI CMP CGI с помощью HTTPS POST, как указано в «Публичной инфраструктуре ключа Х.509» — Transport Protocols for CMP. Все тело POST представляет собой посылку для запрашивающей и отвечающей сторон — клиента и сервера, приложение /pkixcmp.

Важно! Приложение /pkixcmpmime-type требует, чтобы все tcp-сообщение было закодировано в Base64.

Когда клиент CMP отправляет запрос на HTTP-сервер, он должен направить его непосредственно на HTTP-сервер и номер порта, который обрабатывает запросы проверки подлинности клиента. Оператор перенаправления не обрабатывает запрос.

CMP предоставляет средства для первоначальной регистрации конечных объектов, обновления пары ключей и обновления сертификатов для конечных объектов и центров сертификации, перекрестной сертификации между центрами, управления отзывом сертификатов и обнаружения списков отзыва сертификатов (CRL). Набор тестов CMP Server предназначен для тестирования надежности реализаций CA и RA, поддерживающих протокол CMP. Он отправляет аномальные запросы CMP в CA через RA. Набор тестов использует HTTP для передачи сообщений CMP.

CMP через TCP

Включить службу CMP TCP можно, изменив параметр cmp.tcp.enabled в файле conf/cmptcp.properties. Сначала необходимо обязательно скопировать conf/cmptcp.properties.sample в conf/cmptcp.properties. При повторном развертывании EJBCA прослушиватель TCP запускается на порту по умолчанию для CMP через TCP.

Далее нужно запустить сервер приложений от имени пользователя root, чтобы использовать порт по умолчанию, так как это низкий порт (<1024). Для получения информации о параметрах конфигурации для TCP можно обратиться к документации в conf/cmp.properties. Рекомендуется использовать нестандартный порт > 1024.

Запросы CMP, отправляемые по протоколу TCP, будут использовать конфигурации CMP, связанные с псевдонимом конфигурации tcp. Важно: псевдоним конфигурации CMP с именем tcp не существует по умолчанию. Его необходимо создать и/или изменить с помощью пользовательского интерфейса ЦС до того, как какой-либо запрос CMP поступит через TCP.

EJBCA перестанет поддерживать CMP через TCP, вместо этого рекомендуется использовать CMP через HTTP.