Команда certrequests — описание и примеры#
Команда certrequests API КриптоАРМ предназначена для генерации и экспорта запросов на сертификаты с использованием шаблонов. Она описывает полный цикл взаимодействия приложения с сервером по протоколу JSON-RPC 2.0 — от получения параметров операции до отправки сформированного запроса в формате Base64.
Содержание:
- Общая информация
- Формат ссылки
- Получение параметров операции
- Отправка запроса на сертификат
- Справочник интерфейсов
- Интерфейс приложения
Общая информация#
Команда certrequests используется для генерации запроса на сертификат по шаблону.
Схема взаимодействия:

Все запросы между КриптоАРМ и сервером ДОЛЖНЫ соответствовать спецификации протокола JSON-RPC 2.0.
В качестве транспорта используется HTTP.
🔍 Общее описание указано в разделе Формат ссылки.
Формат ссылки#
Для выполнения команды certrequests должна быть сформирована ссылка вида:
cryptoarm://- зарегистрированный протоколcertrequests- выполняемая команда<URL>- ссылка, на которую КриптоАРМ будет слать запросыid- уникальный идентификатор транзакцииauthType- необязательный параметр. Тип аутентификации.
Пример:
Получение параметров операции#
После получения команды certrequests КриптоАРМ отправляет запрос на получение параметров операции.
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | certrequests.parameters | Используемый метод. Всегда certrequests.parameters. |
| id | Уникальный идентификатор | Используется идентификатор, который указан в ссылке на операцию. |
| diagnostic | IDiagnosticsInformation | Диагностическая информация о рабочем месте. Содержит поля VERSIONS, PROVIDERS, LICENSES. |
Пример:
Формат ответа#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| result | ICertrequestsParameters | Объект со сведениями о параметрах операции |
| id | Уникальный идентификатор | Используется идентификатор, который указан в ссылке на операцию. |
Пример ответа с шаблоном JSONTemplate:
Пример ответа с шаблоном CertificateTemplate (на основе сертификата):
Отправка запроса на сертификат#
После генерации запроса, он будет отправлен на сервер.
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | certrequests.base64 | Используемый метод. |
| params | ICertificaterequestBase64Params | Параметры, содержащие запрос |
Пример:
Справочник интерфейсов#
Интерфейс ICertrequestsParameters#
Объекты данного типа описывают параметры команды.
| Свойство | Тип | Описание |
|---|---|---|
| operation | string | Тип операции. Единственное поддерживаемое значение: GENERATE. |
| props | ICertrequestsOperationGenerateProps | Параметры операции |
Интерфейс ICertrequestsOperationGenerateProps#
Объекты данного типа описывают дополнительные свойства операции.
| Свойство | Тип | Описание |
|---|---|---|
| headerText? | string | Необязательный параметр. Используется для отображения в заголовке окна. Максимальная длина: 40 символов. |
| descriptionText? | string | Необязательный параметр. Используется для отображения в сведениях об операции. Максимальная длина: 120 символов. |
| templateType | string | Тип шаблона: "JSONTemplate" (JSON-описание) или "CertificateTemplate" (на основе существующего сертификата). |
| template | IJSONTemplate или ICertificateTemplate | Шаблон для генерации запроса на сертификат. |
Интерфейс IJSONTemplate#
Объекты данного типа описывают поля для генерации запроса на сертификат.
| Свойство | Тип | Описание |
|---|---|---|
| Description | string | Описание шаблона |
| FriendlyName | string | Дружественное имя шаблона |
| RDN | IRDN[] | Набор полей DN (Distinguished Name) |
| Extensions | IRequestExtension | Расширения сертификата |
| MarkExportable | boolean | Определяет экспортируемость ключей |
Интерфейс IRDN#
| Свойство | Тип | Описание |
|---|---|---|
| Oid | string | OID поля |
| Name | string | Наименование OID |
| Length | number | Максимальная длина поля |
| LocalizedName | string | Локализованное наименование OID |
| SettingsValues | string[] | Список возможных значений |
| DefaultValue | string | Значение по умолчанию |
| ProhibitAnyValue | boolean | Флаг, указывающий, что пользователю доступны только значения из SettingsValues |
| ProhibitChange | boolean | Флаг, указывающий, что поле не может быть изменено |
| ProhibitEmpty | boolean | Флаг, указывающий, что поле должно быть непустым |
Интерфейс IRequestExtension#
| Свойство | Тип | Описание |
|---|---|---|
| KeyUsage | IKeyUsage[] | Использование ключа |
| ExtendedKeyUsage | IExtendedKeyUsage[] | Расширенное использование ключа |
Интерфейс IKeyUsage#
| Свойство | Тип | Описание |
|---|---|---|
| Name | string | Наименование OID (например, "digitalSignature") |
| LocalizedName | string | Локализованное наименование OID |
| DefaultValue | boolean | Значение по умолчанию |
| ProhibitChange | boolean | Флаг, указывающий, что поле не может быть изменено |
Интерфейс IExtendedKeyUsage#
| Свойство | Тип | Описание |
|---|---|---|
| Name | string | Наименование OID (например, "1.3.6.1.5.5.7.3.1") |
| LocalizedName | string | Локализованное наименование OID |
| DefaultValue | boolean | Значение по умолчанию |
| ProhibitChange | boolean | Флаг, указывающий, что поле не может быть изменено |
Интерфейс ICertificateTemplate#
Объекты данного типа используются для генерации запроса на сертификат, где запрос формируется по существующему сертификату.
| Свойство | Тип | Описание |
|---|---|---|
| certificateBase64 | string | Сертификат в формате X.509, закодированный в Base64 |
Интерфейс ICertificaterequestBase64Params#
| Свойство | Тип | Описание |
|---|---|---|
| id | string | Идентификатор транзакции |
| certificaterequestBase64 | string | Запрос в формате X.509, закодированный в Base64 |
| friendlyName | string | Дружественное имя субъекта |
Интерфейс приложения#
При выполнении команды запроса на сертификат, не относящийся к процедуре интерфейс блокируется.
Пользователю доступны:
- Заполнение полей запроса,
- Кнопки «Готово» и «Отмена».
После выполнения команды, приложение будет свернуто в системный трей.