Команда certificates — описание и примеры#
Команда certificates в API КриптоАРМ предназначена для работы с сертификатами в локальных хранилищах.
Содержание:
- Команда certificates — описание и примеры
- Общая информация
- Формат ссылки
- Получение параметров операции
- Импорт сертификата
- Экспорт сертификатов
- Просмотр информации о сертификате
- Справочник интерфейсов
- Интерфейс приложения
Общая информация#
Команда certificates используется для экспорта сертификата или списка сертификатов, импорта сертификата в локальное хранилище, просмотра информации о сертификате.
Схема взаимодействия (экспорт сертификатов):

Все запросы между КриптоАРМ и сервером ДОЛЖНЫ соответствовать спецификации протокола JSON-RPC 2.0.
В качестве транспорта используется HTTP.
🔍 Общее описание указано в разделе Формат ссылки.
Формат ссылки#
Для выполнения команды certificates должна быть сформирована ссылка вида:
cryptoarm://- зарегистрированный протоколcertificates- выполняемая команда<URL>- ссылка, на которую КриптоАРМ будет слать запросыid- уникальный идентификатор транзакцииauthType- необязательный параметр. Тип аутентификации.
Пример:
Получение параметров операции#
После получения команды certificates КриптоАРМ отправляет запрос на получение параметров операции.
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | certificates.parameters | Используемый метод. Всегда certificates.parameters. |
| id | Уникальный идентификатор | Используется идентификатор, который указан в ссылке на операцию. |
| diagnostic | IDiagnosticsInformation | Диагностическая информация о рабочем месте. Содержит поля VERSIONS, PROVIDERS, LICENSES. |
Пример:
Формат ответа#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| result | ICertificatesParameters | Объект со сведениями о параметрах операции |
| id | Уникальный идентификатор | Используется идентификатор, который указан в ссылке на операцию. |
Пример ответа для импорта сертификата:
Пример ответа для экспорта сертификата:
Пример ответа для просмотра информации:
Импорт сертификата#
При импорте (operation: "import") КриптоАРМ импортирует переданный сертификат в локальное хранилище. Если хранилище не указано, используется MY. После успешного импорта при наличии закрытого ключа пользователю может быть предложено выбрать хранилище.
Результат отправляется POST-запросом.
Формат запроса результата#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | certificates.import | Используемый метод. |
| params | { id, status } | Параметры с результатом импорта |
Экспорт сертификатов#
При экспорте (operation: "export") КриптоАРМ открывает окно выбора сертификата. Если multy: true, пользователю разрешён множественный выбор. Результат всегда передаётся в виде массива certificates (даже для одиночного выбора).
Формат запроса#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | certificates.base64 | Используемый метод. |
| params | { id, certificates: ICertificateExportParams[] } | Массив сертификатов (один элемент — для одиночного экспорта) |
Просмотр информации о сертификате#
При просмотре (operation: "information") КриптоАРМ отображает переданный сертификат в окне информации и оповещает сервер о завершении.
Формат запроса результата#
| Ключ | Значение | Описание |
|---|---|---|
| jsonrpc | «2.0» | Версия JSON-RPC протокола. Всегда «2.0». |
| method | certificates.information | Используемый метод. |
| params | { id, status } | Параметры с результатом |
Справочник интерфейсов#
Интерфейс ICertificatesParameters#
Объекты данного типа описывают параметры команды запроса на сертификат.
| Свойство | Тип | Описание |
|---|---|---|
| operation | string | Тип операции: "import", "export", "information". |
| props | ICertificatesOperationProps | Параметры операции |
Интерфейс ICertificatesOperationProps#
Объекты данного типа описывают дополнительные свойства операции.
| Свойство | Тип | Описание |
|---|---|---|
| headerText? | string | Необязательный параметр. Используется для отображения в заголовке окна. Максимальная длина - 40 символов. |
| descriptionText? | string | Необязательный параметр. Используется для отображения в сведениях об операции. Максимальная длина - 120 символов. |
| store? | string[] | Необязательный параметр. Массив имён хранилищ. Если не задан, используется MY (личные сертификаты). |
| multy? | boolean | Необязательный параметр. Разрешён ли множественный выбор. По умолчанию false. |
| certificateBase64? | string | Необязательный параметр. Сертификат в формате X.509, закодированный в Base64. Используется для import и information. |
Интерфейс ICertificateBase64Params#
Объекты данного типа описывают параметры запроса для метода certificates.base64 при одиночном экспорте.
| Свойство | Тип | Описание |
|---|---|---|
| id | string | Идентификатор транзакции |
| certificateBase64 | string | Сертификат в формате X.509, закодированный в Base64 |
| friendlyName | string | Дружественное имя сертификата |
Интерфейс ICertificateExportParams#
Объекты данного типа описывают сертификат в составе списка при множественном экспорте. Используется в методе certificates.base64 с массивом certificates.
| Свойство | Тип | Описание |
|---|---|---|
| certificateBase64 | string | Сертификат в формате X.509, закодированный в Base64 |
| hash | string | SHA1-отпечаток сертификата |
| issuerFriendlyName | string | Дружественное имя издателя (CN) |
| issuerName | string | Имя издателя |
| notAfter | string | Дата окончания действия сертификата |
| notBefore | string | Дата начала действия сертификата |
| rootCAMinComSvyaz | boolean | Является ли владельцем корневого сертификата цепочки "Минкомсвязь России" |
| subjectFriendlyName | string | Дружественное имя субъекта (CN) |
| subjectName | string | Имя субъекта |
| status | boolean | Статус сертификата (проверяется вся цепочка) |
| serial | string | Серийный номер сертификата |
| x509? | string | Необязательный параметр. Сертификат в формате X.509, закодированный в Base64 |
Интерфейс ICertificateIdentityInfo#
Объекты данного типа описывают объекты, содержащие параметры сертификата, позволяющие идентифицировать его.
| Свойство | Тип | Описание |
|---|---|---|
| hash | string | SHA1-отпечаток сертификата |
| notAfter | number | Дата окончания действия сертификата (timestamp) |
| notBefore | number | Дата начала действия сертификата (timestamp) |
| isSelfSigned | boolean | Флаг самоподписанного сертификата |
| key | boolean | Наличие привязки к закрытому ключу |
| pubKeyAlg | string | Алгоритм публичного ключа |
| issuerFriendlyName | string | Дружественное имя издателя (CN) |
| issuerName | string | Имя издателя |
| subjectFriendlyName | string | Дружественное имя субъекта (CN) |
| subjectName | string | Имя субъекта |
| signatureAlgorithm | string | Алгоритм подписи |
| signatureDigestAlgorithm | string | Алгоритм хеширования |
| serial | string | Серийный номер сертификата |
| organizationName | string | Название организации |
| provider | string | Тип криптопровайдера |
| keyUsageString | string | Использование ключа |
| keyNotAfter | number | Срок действия закрытого ключа (timestamp) |
Интерфейс приложения#
При выполнении команды запроса на сертификаты, не относящийся к процедуре интерфейс блокируется.
Пользователю доступны:
- Выбор сертификатов,
- Две кнопки: «Готово» и «Отмена».
После выполнения команды, приложение будет свернуто в системный трей.