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

Команда certrequests

Генерация запросов на сертификат

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

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

Схема

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

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

cryptoarm://certificates/<URL>/?id=<id>
  • cryptoarm:// - зарегистрированный протокол

  • certrequests - выполняемая команда

  • <URL> - ссылка, на которую КриптоАРМ будет слать запросы

  • id - уникальный идентификатор транзакции

Пример:

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

Общее

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

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

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

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

После получения команды 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. Продолжая работу с веб-сайтом, Вы даете свое согласие на работу с этими файлами.