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

Команда certificates

Запросы на экспорт или импорт сертификатов и просмотр информации о сертификат

Команда certificates используется для: экспорта сертификата или списка сертификатов, а импорта сертификата в локальное хранилище, просмотра информации о сертификате.

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

Схема

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

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

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

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

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

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

Пример:

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

Общее

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

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

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

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

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

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

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

Пример:

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

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

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
result ICertificatesParameters Объект со сведениями о параметрах операции
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": "export",
        "props": {
            "store": ["MY"],
            "multy": false
        }
    },
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba"
}

Пример ответа для экспорта сертификата:

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": "information",
        "props": {
            "certificateBase64": "MIIFFDCCBMGgAwIBAgIQT...4VVkDWbX/n4="
        }
    },
    "id": "2c48eb32-a0a8-405c-ade9-eed130605cba"
}

Отправка сертификата

При экспорте сертификатов результат отправляются на сервер. После того, как пользователь выберет нужный сертификат КриптоАРМ отправляет запрос, содержащий выбранные элементы (base64 без заголовков). Используются нотификации (уведомления), для которых не требуется ответ сервера.

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

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

Пример:

Content-Type: application/json
Content-Length: ...
Accept: application/json
{
    "jsonrpc": "2.0",
    "method": "certificates.base64",
    "params": {
        "id": "2c48eb32-a0a8-405c-ade9-eed130605cba",
        "certificateBase64": "MIIFFDCCBMGgAwIBAgIQTm1HiybyfWV...4VVkDWbX/n4=",
        "friendlyName": "Минкомсвязь России"
    }
}

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

При экспорте сертификатов результат отправляются на сервер. Если параметры ICertRequestParameters содержат поле «multy» со значением «true», то пользователю в КриптоАРМ будет разрешён множественный выбор сертификатов. После того, как пользователь выберет нужные сертификаты и нажмет кнопку «Готово», КриптоАРМ отправляет запрос, содержащий выбранные элементы (base64 без заголовков). Используются нотификации (уведомления), для которых не используется ответ сервера.

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

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
method certificates.base64 Используемый метод. Всегда certificates.base64.
params ICertificateBase64Params Параметры, содержащие объект сертификата
Content-Type: application/json
Content-Length: ...
Accept: application/json
{
    "jsonrpc": "2.0",
    "method": "certificates.base64",
    "params": {
        "id": "2c48eb32-a0a8-405c-ade9-eed130605cba",
        "certificates": [{
                "certificateBase64": "MIIFFDCCBMGgAwIBAgIQTm1HiybyfWV...4VVkDWbX/n4=",
                "friendlyName": "Минкомсвязь России"
            },
            {
                "certificateBase64": "MIIFFDCCBMGgAwIBAgIQTm1HiybyfWV...4VVkDWbX/n4=",
                "friendlyName": "Головной удостоверяющий центр"
            }
        ]
    }
}

Отправка сведений о сертификате

После того, как пользователь выберет нужный сертификат КриптАРМ отправляет запрос, содержащий выбранные элементы (base64 без заголовков). Используются нотификации (уведомления), для которых не требуется ответ сервера.

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

Ключ Значение Описание
jsonrpc «2.0» Версия JSON-RPC протокола. Всегда «2.0».
method certificates.information Используемый метод. Всегда certificates.information.
params Объект типа ICertificateInfo Сведения о сертификате
Content-Type: application/json
Content-Length: ...
Accept: application/json
{
    "jsonrpc": "2.0",
    "method": "certificates.information",
    "params": {
        "id": "2c48eb32-a0a8-405c-ade9-eed130605cba",
        "hash": "MIIFFDCCBMGgAwIBAgIQTm1HiybyfWV",
        "issuerFriendlyName": "Минкомсвязь России",
        "issuerName": "Минкомсвязь России",
        "subjectFriendlyName ": "Минкомсвязь России",
        "subjectName": "Минкомсвязь России",
        "status": true
    }
}

Интерфейс 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.

Интерфейс ICertificateBase64Params

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

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

Интерфейс ICertificateInfo

Объекты данного типа описывают объекты, содержащие свойства сертификата.

Свойство Тип Описание
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

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

Свойство Тип Описание
id string Идентификатор транзакции
hash string SHA1 отпечаток
rootCAMinComSvyaz boolean Флаг, обозначающий является ли владельцем корневого сертификата цепочки “Минкомсвязь России”
status boolean Статус сертификата. Проверяется вся цепочка.
pubKeyAlg string OID алгоритма открытого ключа сертификата

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

При выполнении команды запроса на сертификаты, не относящийся к процедуре интерфейс блокируется. Пользователю доступны: выбор сертификатов. Доступны две кнопки: «Готово» и «Отмена». После выполнения команды, приложение будет свернуто в системный трей.

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