Команда certrequests - Документация для КриптоАРМ 6
Перейти к содержанию

Команда certrequests#


Общая информация#

Команда certrequests используется для: генерации запроса на сертификат по шаблону или экспорт запросов.

Схема взаимодействия (экспорт сертификатов):

Схема

Все запросы между КриптоАРМ и сервером ДОЛЖНЫ соответствовать спецификации протокола JSON-RPC 2.0.

В качестве транспорта используется HTTP.

🔍 Общее описание указано в разделе Формат ссылки.


Формат ссылки#

Для выполнения команды certrequests должна быть сформирована ссылка вида:

cryptoarm://certificates/<URL>/?id=<id>
  • cryptoarm:// - зарегистрированный протокол
  • certrequests - выполняемая команда
  • <URL> - ссылка, на которую КриптоАРМ будет слать запросы
  • id - уникальный идентификатор транзакции

Пример:

cryptoarm://certrequests/https://example.com/json?id=2c48eb32-a0a8-405c-ade9-eed130605cba

Получение параметров операции#

После получения команды certrequests КриптоАРМ отправляет запрос на получение параметров операции.

Формат запроса#

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
method certrequests.parameters Используемый метод. Всегда certrequests.parameters.
id Уникальный идентификатор Используется идентификатор, который указан в ссылке на операцию.
🔍 Формат ссылки
diagnostic IDiagnosticInformaton Диагностическая информация о рабочем месте

Пример:

Content-Type: application/json
Content-Length: ...
Accept: application/json
{
    "jsonrpc": "2.0",
    "method": "certrequests.parameters",
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba",
    "diagnostic": {
    }
}

Формат ответа#

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
result ICertrequestsParameters Объект со сведениями о параметрах операции
id Уникальный идентификатор Используется идентификатор, который указан в ссылке на операцию.
🔍 Формат ссылки

Пример ответа:

HTTP/1.1 200 OK
Connection: close
Content-Length: ...
Content-Type: application/json
Date: Sat, 08 Jul 2020 12:04:08 GMT
{
    "jsonrpc": "2.0",
    "result": {
        "operation": "GENERATE",
        "props": {
            "templateType": "JSONTemplate",
            "template": {
                "Description": "",
                "FriendlyName": "Пользователь",
                "RDN": [{
                    "Oid": "2.5.4.3",
                    "Name": "CN",
                    "Length": 64,
                    "LocalizedName": "Общее имя",
                    "SettingsValues": [],
                    "DefaultValue": null,
                    "ProhibitAnyValue": false,
                    "ProhibitChange": false,
                    "ProhibitEmpty": true
                }],
                "Extensions": {
                    "KeyUsage": [{
                        "Name": "cRLSign",
                        "LocalizedName": "Автономное подписание списка отзыва (CRL)",
                        "DefaultValue": false,
                        "ProhibitChange": true
                    }],
                    "ExtendedKeyUsage": [{
                        "Name": "1.3.6.1.5.5.7.3.1",
                        "LocalizedName": "Проверка подлинности сервера",
                        "DefaultValue": false,
                        "ProhibitChange": true
                    }]
                },
                "MarkExportable": false
            },
            "id": "2c48eb32-a0a8-405c-ade9-eed130605cba"
        }
    }
}

Отправка запроса на сертификат#

После генерации запроса, он будет отправлен на сервер. Используются нотификации (уведомления), для которых не требуется ответ сервера.

Формат запроса#

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
method certrequests.base64 Используемый метод. Всегда certrequests.base64.
params ICertificaterequestBase64Param Параметры, содержащие объект сертификата

Пример:

Content-Type: application/json
Content-Length: ...
Accept: application/json
{
    "jsonrpc": "2.0",
    "method": "certrequests.base64",
    "params": {
        "id": "2c48eb32-a0a8-405c-ade9-eed130605cba",
        "certificaterequestBase64": "MIIFFDCCBMGgAwIBAgIQTm1HiybyfWV...4VVkDWbX/n4=",
        "friendlyName": "ООО Рога и Копыта"
    }
}

Интерфейс ICertrequestsParameters#

Объекты данного типа описывают параметры команды.

Свойство Тип Описание
operation string Тип операции: генерация запроса на сертификат. Значение типа: `CertrequestsOperation
props ICertrequestsOperationGenerateProps Параметры операции

Тип CertrequestsOperation#

Возможные операции с запросами на сертификат.

Значение Описание
GENERATE Генерация запроса на сертификат

Интерфейс ICertrequestsOperationGenerateProps#

Объекты данного типа описывают дополнительные свойства операции.

Свойство Тип Значение Описание
headerText? string Необязательный параметр. Используется для отображения в заголовке окна. Максимальная длина: 40 символов. headerText?
descriptionText? string Необязательный параметр. Используется для отображения в сведениях об операции. Максимальная длина: 120 символов. descriptionText?
templateType string JSONTemplate или CertificateTemplate В качестве шаблона используется JSON типа IJSONTemplate или в качестве шаблона используется сертификат
template IJSONTemplate или ICertificateTemplate Шаблон для генерации запроса на сертификат

Интерфейс ICertificatesParameters#

Объекты данного типа описывают поля для генерации запроса на сертификат.

Свойство Тип Описание
Description string Описание шаблона
FriendlyName string Дружественное имя шаблона
RDN IRDN[] Набор полей DN
Extensions IRequestExtension Расширения
MarkExportable boolean Определяет экспортируемость ключей

Интерфейс IJSONTemplate#

Свойство Тип Описание
Description string Описание шаблона
FriendlyName string Дружественное имя шаблона
RDN IRDN[] Набор полей DN
Extensions IRequestExtension Расширения
MarkExportable boolean Определяет экспортируемость ключей

Интерфейс IRDN#

Свойство Тип Описание
Oid string Описание шаблона
Name string Наименование OID
Length number Максимальная длина поля
LocalizedName string Локализованное наименование OID
SettingsValues string[] Список возможных значений
DefaultValue string Значение по умолчанию
ProhibitAnyValue boolean Флаг указывающий, что пользователю доступны только значения из массива SettingsValues
ProhibitChange boolean Флаг указывающий, что поле не может быть изменено
ProhibitEmpty boolean Флаг указывающий, что поле должно быть непустым

Интерфейс IRequestExtension#

Свойство Тип Описание
KeyUsage IKeyUsage[] Описание шаблона
ExtendedKeyUsage IExtendedKeyUsage[] Наименование OID

Интерфейс IKeyUsage#

Свойство Тип Описание
Name string Наименование OID
LocalizedName string Локализованное наименование OID
DefaultValue boolean Значение по умолчанию
ProhibitChange boolean Флаг указывающий, что поле не может быть изменено

Интерфейс IExtendedKeyUsage#

Свойство Тип Описание
Name string Наименование OID
LocalizedName string Локализованное наименование OID
DefaultValue boolean Значение по умолчанию
ProhibitChange boolean Флаг указывающий, что поле не может быть изменено

Интерфейс ICertificateTemplate#

Объекты данного типа используются для генерации запроса на сертификат, где запрос формируется по сертификату.

Свойство Тип Описание
certificateBase64 string Сертификат в формате X.509 закодированный в Base64

Интерфейс ICertificaterequestBase64Params#

Свойство Тип Описание
id string Идентификатор транзакции
certificaterequestBase64 string Запрос в формате X.509 закодированный в Base64
friendlyName string Дружественное имя субъекта

Интерфейс КриптоАРМ при выборе и отправке сертификатов#

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

Пользователю доступны:

  • Выбор сертификатов,
  • Кнопки «Готово» и «Отмена».

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

Для повышения удобства работы и хранения данных веб-сайт CRYPTOARM.RU использует файлы COOKIE. Продолжая работу с веб-сайтом, Вы даете свое согласие на работу с этими файлами.