Конечная точка Requests
Конечная точка requests предоставляет следующие методы:
- Создание запроса на сертификат
- Получение списка запросов на сертификат
- Получение запроса на сертификат по идентификатору
- Удаление запроса на сертификат по идентификатору
- Получение содержимого запроса на сертификат
- Одобрение и отклонение запроса на сертификат
- Одобрение и отклонение запроса на отзыв/приостановление/восстановление
Создание запроса на сертификат
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/requests |
Параметры | CertificateRequest - Запрос на создание сертификата |
Возвращаемое значение | DSSCertRequest - Созданный запрос на сертификат |
Подробнее о выпуске запроса на сертификат смотреть раздел: Выпуск сертификата
Получение списка запросов на сертификат
Параметр | Значение |
---|---|
HTTP-метод | GET |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/requests |
Параметры | Метод не имеет параметров |
Возвращаемое значение | List<DSSCertRequest> - Список созданных запросов на сертификат |
Примечание
Для получения списка запросов на отзыв/приостановление/восстановление используйте метод /certificates/{key}/revokerequests. Список запросов на отзыв, приостановление и восстановление сертификата может быть получен только для сертификата выпущенного через модуль интеграции с КриптоПро УЦ 2.0.
Пример запроса
GET https://host/SignServer/rest/api/requests HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV ... eFfe5CkkuKMQ
Пример ответа
HTTP/1.1 200 OK
Content-Length: 1379
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
[{
"CertificateType": "ServerSide",
"Base64Request": "MIIBKTCB2QIBADARMQ8wDQ ... h7a6eLJ9axIe0vqaqhtWw==",
"CertificateAuthorityID": 11,
"CADisplayName": null,
"DistName": "CN=idonly",
"Subject": "idonly",
"Status": "ACCEPTED",
"ID": 23,
"CARequestID": null,
"CertificateID": 14,
"RequestType": "Certificate",
"GroupID": "e8e67f9e-7eed-4116-ad98-20582e4d766e"
}, {
"CertificateType": "ServerSide",
"Base64Request": "MIIBKTCB2QIBADARMQ8wDQ ... BthH+U2Obfd9sbjGtE47YDeW+Ng==",
"CertificateAuthorityID": 11,
"CADisplayName": null,
"DistName": "CN=idonly",
"Subject": "idonly",
"Status": "PENDING",
"ID": 24,
"CARequestID": null,
"CertificateID": 0,
"RequestType": "Certificate",
"GroupID": "e8e67f9e-7eed-4116-ad98-20582e4d766e"
}
]
Получение запроса на сертификат по идентификатору
Параметр | Значение |
---|---|
HTTP-метод | GET |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/requests/{req_id} |
Параметры | Идентификатор запроса на сертификат |
Возвращаемое значение | DSSCertRequest - запрос на сертификат |
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Запрос на сертификат с указанным ID не найден |
Пример запроса
GET https://host/SignServer/rest/api/requests/24 HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJK ... ZIF89F4cmHc6kFM_QQXQ
Пример ответа
HTTP/1.1 200 OK
Content-Length: 687
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
{
"CertificateType": "ServerSide",
"Base64Request": "MIIBKTCB2QIBADARMQ8wDQ ... TxlBthH+U2Obfd9sbjGtE47YDeW+Ng==",
"CertificateAuthorityID": 11,
"CADisplayName": null,
"DistName": "CN=idonly",
"Subject": "idonly",
"Status": "PENDING",
"ID": 24,
"CARequestID": null,
"CertificateID": 0,
"RequestType": "Certificate",
"GroupID": "e8e67f9e-7eed-4116-ad98-20582e4d766e"
}
Удаление запроса на сертификат по идентификатору
Параметр | Значение |
---|---|
HTTP-метод | DELETE |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/requests/{req_id} |
Параметры | Идентификатор запроса на сертификат |
Возвращаемое значение | Метод не имеет возвращаемого значения |
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Запрос на сертификат с указанным ID не найден |
Пример запроса
DELETE https://host/SignServer/rest/api/requests/27 HTTP/1.1
Authorization: Bearer eyJ0eXAi ... RwvkYRac7AJuuX2aeY1H7fjpQ
Host: host
Content-Length: 0
Пример ответа
HTTP/1.1 200 OK
Content-Length: 0
Server: Microsoft-IIS/7.5
Получение содержимого запроса на сертификат
Метод предназначен для получения содержимого запроса на сертификат в различных представлениях:
- PKCS#10
- XML
- Печатное представление (HTML)
Параметр | Значение |
---|---|
HTTP-метод | GET |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/requests/{req_id}/content?format={format}&authorityId={ca_id} |
Параметры | req_id - Идентификатор запроса на сертификат format - Формат представления содержимого запроса. ca_id - Идентификатор Удостоверяющего Центра |
Возвращаемое значение | Содержимое запроса на сертификат |
Описание форматов представления запроса на сертификат - DSSCertificateFormatEnum
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Запрос на сертификат с указанным ID не найден |
Пример запроса
GET https://host/SignServer/rest/api/requests/24/content?format=4&authorityId=0 HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGci ... fBD3XvtOUkZOG6yZj1CNQ
Пример ответа
HTTP/1.1 200 OK
Content-Length: 4535
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
"<?xml version=\"1.0\" encoding=\"utf-16\"?>
<html xmlns:pki=\"http://www.cryptopro.ru/2001/Schema/WD1-PKI\">
<head>
<title>Запрос на сертификат X.509</title>
<style>
<!--\r\nH1\r\n{ \r\n\tfont-size: 10pt; \r\n\tfont-family: Verdana; \r\n\ttext-align: Center; \r\n\tmargin: 0px \r\n}\r\nH2\r\n{\r\n\tfont-size: 8pt; \r\n\tfont-family: Verdana; \r\n\ttext-align: Center; \r\n\tmargin: 0px \r\n}\r\n.foot \r\n{ \r\n\tfont-size: 8pt; \r\n\tfont-family: Verdana; \r\n\ttext-align: Right \r\n}\r\n.note \r\n{ \r\n\tfont-size: 7pt; \r\n\tfont-family: Verdana; \r\n\ttext-decoration: underline; \r\n\tmargin: 0px \r\n}\r\nP\r\n{\r\n FONT-SIZE: 7pt;\r\n MARGIN: 0px;\r\n FONT-FAMILY: Verdana\r\n}\r\nPRE\r\n{\r\n FONT-SIZE: 7pt;\r\n MARGIN: 0px;\r\n FONT-FAMILY: Verdana\r\n}\r\n-->
</style>
</head>
<body>
<h1>
<b>Наименование организации-Удостоверяющего Центра</b>
</h1>
<h2>
<b>Запрос на сертификат ключа проверки электронной подписи</b>
</h2>
<hr />
<div style=\"margin-left:1em\">
<p>
<b>Сведения о запросе на сертификат:</b>
</p>
<div style=\"margin-left:1em\">
<p>
<b>Кем выпущен:</b>
</p>
<div style=\"margin-left:1em\">
<p>idonly</p>
</div>
</div>
</div>
<div style=\"margin-left:1em\">
<p>
<b>Версия:</b> 1\r\n (0x0)\r\n </p><p>
<b>Субьект запроса на сертификат: </b>CN\r\n =\r\n idonly</p><p>
<b>Ключ проверки электронной подписи:</b>
</p>
<div style=\"margin-left:1em\">
<p>Алгоритм ключа проверки электронной подписи:</p>
<div style=\"margin-left:1em\">
<p>Название: \r\n ГОСТ Р 34.10-2001</p>
<div style=\"margin-left:1em\">
<p> Параметры:\r\n 30 12 06 07 2a 85 03 02 02 24 00 06 07 2a 85 03 02 02 1e 01</p>
</div>
</div><p>Значение: \r\n 04 40 16 5b c3 2c c2 81 2d 76 d7 16 cf 05 71 62 ef cf 2b de d2 bb a4 8c 76 31 03 e9 3b c2 32 ca 7c 7c 61 ca 7f 88 b4 58 e1 81 f0 7a 74 33 59 15 67 10 4c 1d 57 88 7d 66 d9 d4 dc ea 5b 3b 97 09 e9 0a</p>
</div><p>
<b>Атрибуты запроса на сертификат X.509</b>
</p>
<div style=\"margin-left:1em\">
<p>Название: \r\n Расширения сертификатов</p><p>
<b>Расширения сертификата X.509</b>
</p>
<div style=\"margin-left:1em\">
<p>1.\r\n Расширение </p>
<div style=\"margin-left:1em\">
<p>Название: \r\n Использование ключа</p><p>Значение: \r\n Цифровая подпись, Неотрекаемость, Шифрование ключей, Шифрование данных (f0)</p>
</div><p>2.\r\n Расширение </p>
<div style=\"margin-left:1em\">
<p>Название: \r\n Идентификатор ключа субъекта</p><p>Значение: \r\n 77 32 f2 d3 22 77 0d b6 72 06 d7 18 23 ad 2a 69 78 48 4c 78</p>
</div><p>3.\r\n Расширение </p>
<div style=\"margin-left:1em\">
<p>Название: \r\n Улучшенный ключ</p><p>Значение: \r\n Пользователь Центра Регистрации, HTTP, TLS клиент (1.2.643.2.2.34.6), Проверка подлинности клиента (1.3.6.1.5.5.7.3.2)</p>
</div>
</div><p>
<b>Подпись запроса:</b>
</p>
<div style=\"margin-left:1em\">
<p>Алгоритм подписи:</p>
<div style=\"margin-left:1em\">
<p>Название: \r\n ГОСТ Р 34.11/34.10-2001</p>
</div><p>Значение: \r\n 36 BE E5 0D D8 8E 13 AD 31 6E 6C DF 7D 9B 63 53 FE 11 B6 41 19 4F FF DA 31 4A 0C 27 EE 4A D2 81 EE B1 42 82 55 EF 5E DA 00 08 26 DC 88 35 7E AD 98 13 EC B0 CA 5D D9 1C 33 C1 B3 89 3F C8 07 DD</p>
</div>
</div>
</div>
<hr />
<br />
<p class=\"foot\">Подпись владельца запроса на сертификат: ___________/_______________</p>
<br />
<p class=\"foot\">\"___\" ________ 20__ г.</p>
<br />
<p class=\"foot\">М. П.</p><p>Средство электронной подписи \"КриптоПро CSP\"</p>
<br />
<p class=\"note\">Подписанный запрос на сертификат ключа проверки электронной подписи следует переслать по адресу:</p><p class=\"note\">111111, Москва, ул. ХХХХХХХХ, д.ХХ. XXXXXXXXXXXXXXXXXXXX</p><p class=\"note\">Администратору информационной безопасности.</p>
</body>
</html>"
Получение содержимого запроса на отзыв/приостановление/восстановление
Параметр | Значение |
---|---|
HTTP-метод | GET |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/requests/revokerequests/{req_id}/content?format={format}&authorityId={ca_id} |
Параметры | req_id - Идентификатор запроса на сертификат format - Тип предаставления содержимого запроса. ca_id - Идентификатор Удостоверяющего Центра |
Возвращаемое значение | Содержимое запроса |
Описание форматов представления запроса на сертификат - DSSCertificateFormatEnum
Примечание
Список запрос на отзыв/приостановление/восстановление может быть получен только для сертификатов выпущенных через модуль интеграции с КриптоПро УЦ 2.0.
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Запрос на сертификат с указанным ID не найден |
Одобрение и отклонение запроса на сертификат
Принятие/отклонение запроса на сертификат:
Параметр | Значение |
---|---|
HTTP-метод | PATCH |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/requests/{req_id}/status |
Параметры | req_id - Идентификатор запроса на сертификат RequestStatus - Новый статус запроса на сертификат. |
Возвращаемое значение | Метод не имеет возвращаемого значения |
HTTP-код | Ошибка | Описание |
---|---|---|
401 | Authorization has been denied for this request | Пользователь не имеет разрешения на выполнение запроса |
Примечание
Метод может быть вызван только пользователем с ролью Оператор DSS. Оператор DSS может принять или отклонить запросы на сертификаты созданные через модуль интеграции с КриптоПро УЦ 2.0. Запросы на сертификат созданные через Offline УЦ могут быть только отклонены.
При отклонении/одобрении запроса на сертификат необходимо заполнить только поля Type
и Value
:
- Поле
Type
имеет фиксированное значение 0 (Certificate). - Поле
Value
может принимать значения 4 (ACCEPTED) или 8 (REJECTED)
Пример запроса
POST https://host/SignServer/rest/api/requests/26/status HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1Qi ... Y3m5uZc59QwnD0BA
Content-Type: application/json; charset=utf-8
Content-Length: 39
Expect: 100-continue
{"Value":8,"ID":"-1","caID":0,"Type":0}
Пример ответа
HTTP/1.1 200 OK
Content-Length: 0
Server: Microsoft-IIS/7.5
Принятие/отклонение запроса на отзыв/приостановление/восстановление:
Параметр | Значение |
---|---|
HTTP-метод | PATCH |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/requests/revokerequests/{revreq_id}/status |
Параметры | revreq_id - Идентификатор запроса на отзыв/приостановление/восстановление в УЦ RequestStatus - Новый статус запроса на сертификат. |
Возвращаемое значение | Метод не имеет возвращаемого значения |
В структруре RequestStatus необходимо заполнить поля:
Value
- может принимать значения 4 (ACCEPTED) или 8 (REJECTED)caID
- идентификатор Удостоверяющего ЦентраType
имеет фиксированное значение 0 (Certificate)Comment
(опциональное) - комментарий Оператора DSS. Например, причина отклонения запроса.
Значение req_id
необходимо взять их результата работы метода /certificates/{cert_id}/revokerequests -
поле ID
в структуре DSSRevRequest.
Последовательность действие Оператора DSS при одобрении/отклонении запросов на отзыв/приостановление/восстановление:
- получить список сертификатов пользователя /certificates/
- для каждого из сертификатов пользователя проверить наличие запросов на отзыв/приостановление/восстановление /certificates/{cert_id}/revokerequests
- если запрос DSSRevRequest имеет поле
Status
PENDING, то одобрить или отклонить его
HTTP-код | Ошибка | Описание |
---|---|---|
401 | Authorization has been denied for this request | Пользователь не имеет разрешения на выполнение запроса |
400 | invalid_enroll | Неверно указан идентификатор УЦ |
400 | invalid_rev_request | Неверно указан идентификатор запроса |
Примечание
Метод может быть вызван только пользователем с ролью Оператор DSS. Оператор DSS может принять или отклонить запросы на отзыв/приостановление/восстановление созданные через модуль интеграции с КриптоПро УЦ 2.0.
Пример запроса
POST https://host/SignServer/rest/api/requests/revokerequests/6a5c8b4a-52c6-e811-80db-00155d454d12/status HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJHMD ... o9ju8CQuZneFapoL2q4CjUJAw
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 39
Expect: 100-continue
{"Value":4,"ID":"-1","caID":6,"Type":0}
Пример ответа
HTTP/1.1 200 OK
Content-Length: 0
Server: Microsoft-IIS/7.5