Конечная точка Certificates
Конечная точка certificates предоставляет следующие методы:
- Получение списка сертификатов
- Получение сертификата по идентификатору
- Удаление сертификата по идентификатору
- Получение содержимого сертификата
- Получение списка запросов на аннулирование/приостановление/возобновление
- Установка сертификата
Изменение свойств сертификата:
- Смена ПИН-кода
- Валидация ПИН-кода
- Назначение сертификата по умолчанию
- Назначение дружественного имени
Изменение статуса сертитификата:
Получение списка сертификатов
Параметр | Значение |
---|---|
HTTP-метод | GET |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates |
Параметры | Метод не имеет параметров |
Возвращаемое значение | List<DSSCertificateEx> - Список сертификатов |
Запрос
GET /SignServerClient/rest/api/v2/certificates HTTP/1.1
Host: hostname
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ ... bcAJHi6fFFnPJg
Ответ
[
{
"CertificateType": "ClientSide",
"RemainingPinAttempts": 2147483647,
"UserId": "6c42e75a-d2fe-4b18-8ccd-61981c0706dd",
"Storage": "Mobile",
"SubjectName": [
{
"IsRequired": false,
"Order": 0,
"OID": "2.5.4.3",
"Name": "Общее имя",
"Value": "Irene Heller",
"StringIdentifier": "CN"
},
{
"IsRequired": false,
"Order": 3,
"OID": "2.5.4.6",
"Name": "Страна/регион",
"Value": "RU",
"StringIdentifier": "C"
}
],
"IssuerName": [
{
"IsRequired": false,
"Order": 0,
"OID": "2.5.4.3",
"Name": "Общее имя",
"Value": "Тестовый подчиненный УЦ ООО \"КРИПТО-ПРО\" ГОСТ 2012 (УЦ 2.0)",
"StringIdentifier": "CN"
},
{
"IsRequired": false,
"Order": 7,
"OID": "2.5.4.10",
"Name": "Организация",
"Value": "ООО \"КРИПТО-ПРО\"",
"StringIdentifier": "O"
},
{
"IsRequired": false,
"Order": 6,
"OID": "2.5.4.9",
"Name": "Адрес",
"Value": "ул. Сущёвский вал д. 18",
"StringIdentifier": "STREET"
},
{
"IsRequired": false,
"Order": 5,
"OID": "2.5.4.7",
"Name": "Город",
"Value": "Москва",
"StringIdentifier": "L"
},
{
"IsRequired": false,
"Order": 4,
"OID": "2.5.4.8",
"Name": "Область",
"Value": "77 Москва",
"StringIdentifier": "S"
},
{
"IsRequired": false,
"Order": 3,
"OID": "2.5.4.6",
"Name": "Страна/регион",
"Value": "RU",
"StringIdentifier": "C"
},
{
"IsRequired": false,
"Order": 10,
"OID": "1.2.643.100.1",
"Name": "ОГРН",
"Value": "1037700085444",
"StringIdentifier": "ОГРН"
},
{
"IsRequired": false,
"Order": 14,
"OID": "1.2.840.113549.1.9.1",
"Name": "Адрес E-Mail",
"Value": "info@cryptopro.ru",
"StringIdentifier": "E"
},
{
"IsRequired": false,
"Order": 13,
"OID": "1.2.643.100.4",
"Name": "ИНН ЮЛ",
"Value": "7717107991",
"StringIdentifier": "ИНН ЮЛ"
}
],
"Thumbprint": "66A8A7E6942E7FB284D150EA18C9FA1BFCB75774",
"ValidFrom": 1645897529,
"ValidTo": 1653587729,
"ID": 12160,
"DName": "CN=Irene Heller, C=RU",
"CertificateBase64": "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",
"Status": {
"Value": "ACTIVE",
"RevocationInfo": null,
"PinCode": null,
"ActiveCertId": 0
},
"IsDefault": false,
"CertificateAuthorityID": 1,
"CspID": "b3c2d004-48dd-4c40-826f-43928f3729b6",
"HashAlgorithms": [
"GR 34.11-2012 256"
],
"ProviderName": null,
"ProviderType": 0,
"PrivateKeyNotBefore": "2022-02-26T20:55:38.95",
"PrivateKeyNotAfter": "2023-07-26T20:55:38.95",
"HasPin": false,
"FriendlyName": ""
}
]
Получение сертификата по идентификатору
Параметр | Значение |
---|---|
HTTP-метод | GET |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id} |
Параметры | cert_id - идентификатор сертификата |
Возвращаемое значение | DSSCertificateEx - Сертификат |
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Cертификат с указанным ID не найден |
Запрос
GET /SignServerClient/rest/api/v2/certificates HTTP/1.1
Host: hostname
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ ... bcAJHi6fFFnPJg
Ответ
{
"CertificateType": "ClientSide",
"RemainingPinAttempts": 2147483647,
"UserId": "6c42e75a-d2fe-4b18-8ccd-61981c0706dd",
"Storage": "Mobile",
"SubjectName": [
{
"IsRequired": false,
"Order": 0,
"OID": "2.5.4.3",
"Name": "Общее имя",
"Value": "Irene Heller",
"StringIdentifier": "CN"
},
{
"IsRequired": false,
"Order": 3,
"OID": "2.5.4.6",
"Name": "Страна/регион",
"Value": "RU",
"StringIdentifier": "C"
}
],
"IssuerName": [
{
"IsRequired": false,
"Order": 0,
"OID": "2.5.4.3",
"Name": "Общее имя",
"Value": "Тестовый подчиненный УЦ ООО \"КРИПТО-ПРО\" ГОСТ 2012 (УЦ 2.0)",
"StringIdentifier": "CN"
},
{
"IsRequired": false,
"Order": 7,
"OID": "2.5.4.10",
"Name": "Организация",
"Value": "ООО \"КРИПТО-ПРО\"",
"StringIdentifier": "O"
},
{
"IsRequired": false,
"Order": 6,
"OID": "2.5.4.9",
"Name": "Адрес",
"Value": "ул. Сущёвский вал д. 18",
"StringIdentifier": "STREET"
},
{
"IsRequired": false,
"Order": 5,
"OID": "2.5.4.7",
"Name": "Город",
"Value": "Москва",
"StringIdentifier": "L"
},
{
"IsRequired": false,
"Order": 4,
"OID": "2.5.4.8",
"Name": "Область",
"Value": "77 Москва",
"StringIdentifier": "S"
},
{
"IsRequired": false,
"Order": 3,
"OID": "2.5.4.6",
"Name": "Страна/регион",
"Value": "RU",
"StringIdentifier": "C"
},
{
"IsRequired": false,
"Order": 10,
"OID": "1.2.643.100.1",
"Name": "ОГРН",
"Value": "1037700085444",
"StringIdentifier": "ОГРН"
},
{
"IsRequired": false,
"Order": 14,
"OID": "1.2.840.113549.1.9.1",
"Name": "Адрес E-Mail",
"Value": "info@cryptopro.ru",
"StringIdentifier": "E"
},
{
"IsRequired": false,
"Order": 13,
"OID": "1.2.643.100.4",
"Name": "ИНН ЮЛ",
"Value": "7717107991",
"StringIdentifier": "ИНН ЮЛ"
}
],
"Thumbprint": "66A8A7E6942E7FB284D150EA18C9FA1BFCB75774",
"ValidFrom": 1645897529,
"ValidTo": 1653587729,
"ID": 12160,
"DName": "CN=Irene Heller, C=RU",
"CertificateBase64": "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",
"Status": {
"Value": "ACTIVE",
"RevocationInfo": null,
"PinCode": null,
"ActiveCertId": 0
},
"IsDefault": false,
"CertificateAuthorityID": 1,
"CspID": "b3c2d004-48dd-4c40-826f-43928f3729b6",
"HashAlgorithms": [
"GR 34.11-2012 256"
],
"ProviderName": null,
"ProviderType": 0,
"PrivateKeyNotBefore": "2022-02-26T20:55:38.95",
"PrivateKeyNotAfter": "2023-07-26T20:55:38.95",
"HasPin": false,
"FriendlyName": ""
}
Удаление сертификата по идентификатору
Параметр | Значение |
---|---|
HTTP-метод | DELETE |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id} |
Параметры | cert_id - Идентификатор сертификата |
Возвращаемое значение | OperationInfo> - Результат операции |
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Cертификат с указанным ID не найден |
Пример запроса
DELETE https://host/SignServer/rest/api/v2/certificates/14 HTTP/1.1
Authorization: Bearer eyJ0eXAi ... RwvkYRac7AJuuX2aeY1H7fjpQ
Host: host
Content-Length: 0
Пример ответа
{
"Operation": {
"Id": null,
"Result": {},
"Status": "Completed",
"Error": null,
"ErrorDescription": null,
"ExpirationDate": 1645904436
}
}
Получение содержимого сертификата
Параметр | Значение |
---|---|
HTTP-метод | GET |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/content?format={format} |
Параметры | req_id - Идентификатор сертификата format - Формат представления содержимого сертификата. |
Возвращаемое значение | Содержимое сертификата |
Описание форматов представления сертификата - DSSCertificateFormatEnum
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Сертификат с указанным ID не найден |
Пример запроса
GET https://host/SignServer/rest/api/v2/certificates/14/content?format=2 HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLC ... LgtvjC0-2GA0Kth2ZnorIoiA
Host: host
Пример ответа
HTTP/1.1 200 OK
Content-Length: 5571
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
"<?xml version=\"1.0\" encoding=\"utf-16\"?>
<pki:certificate xmlns:pki=\"http://www.cryptopro.ru/2001/Schema/WD1-PKI\">
<pki:version pki:value=\"2\">3</pki:version>
<pki:serial-number>12002D94874E4BA91F129E408D0000002D9487</pki:serial-number>
<pki:issuer pki:count=\"5\">
<pki:rdn pki:order=\"5\" pki:count=\"1\">
<pki:rdn-attr pki:order=\"1\" pki:id=\"2.5.4.3\">
<pki:name xml:lang=\"ru\">CN</pki:name>
<pki:value pki:lang=\"ru\">CRYPTO-PRO Test Center 2</pki:value>
</pki:rdn-attr>
</pki:rdn>
<pki:rdn pki:order=\"4\" pki:count=\"1\">
<pki:rdn-attr pki:order=\"1\" pki:id=\"2.5.4.10\">
<pki:name xml:lang=\"ru\">O</pki:name>
<pki:value pki:lang=\"ru\">CRYPTO-PRO LLC</pki:value>
</pki:rdn-attr>
</pki:rdn>
<pki:rdn pki:order=\"3\" pki:count=\"1\">
<pki:rdn-attr pki:order=\"1\" pki:id=\"2.5.4.7\">
<pki:name xml:lang=\"ru\">L</pki:name>
<pki:value pki:lang=\"ru\">Moscow</pki:value>
</pki:rdn-attr>
</pki:rdn>
<pki:rdn pki:order=\"2\" pki:count=\"1\">
<pki:rdn-attr pki:order=\"1\" pki:id=\"2.5.4.6\">
<pki:name xml:lang=\"ru\">C</pki:name>
<pki:value pki:lang=\"ru\">RU</pki:value>
</pki:rdn-attr>
</pki:rdn>
<pki:rdn pki:order=\"1\" pki:count=\"1\">
<pki:rdn-attr pki:order=\"1\" pki:id=\"1.2.840.113549.1.9.1\">
<pki:name xml:lang=\"ru\">E</pki:name>
<pki:value pki:lang=\"ru\">support@cryptopro.ru</pki:value>
</pki:rdn-attr>
</pki:rdn>
</pki:issuer>
<pki:validity>
<pki:notBefore>27.09.2018 19:08:26</pki:notBefore>
<pki:notAfter>27.12.2018 19:18:26</pki:notAfter>
</pki:validity>
<pki:subject pki:count=\"1\">
<pki:rdn pki:order=\"1\" pki:count=\"1\">
<pki:rdn-attr pki:order=\"1\" pki:id=\"2.5.4.3\">
<pki:name xml:lang=\"ru\">CN</pki:name>
<pki:value pki:lang=\"ru\">idonly</pki:value>
</pki:rdn-attr>
</pki:rdn>
</pki:subject>
<pki:subject-public-key-info>
<pki:public-key-algorithm>
<pki:algorithm pki:id=\"1.2.643.2.2.19\">
<pki:name xml:lang=\"ru\">ГОСТ Р 34.10-2001</pki:name>
</pki:algorithm>
<pki:parameters>
<![CDATA[30 12 06 07 2a 85 03 02 02 24 00 06 07 2a 85 03 02 02 1e 01]]>
</pki:parameters>
</pki:public-key-algorithm>
<pki:subject-public-key>
<pki:value>
<![CDATA[04 40 d6 c4 15 66 c2 a5 22 53 38 65 5c 0d 20 60 81 a8 84 fb 21 b0 ea 13 23 e6 cf 6f de 7c 58 64 12 de 72 34 c6 44 4c cd bd a0 d6 d4 f6 63 11 ba b0 f7 5d db 57 7b 58 af 6f 99 4b 57 da de 88 99 88 40]]>
</pki:value>
</pki:subject-public-key>
</pki:subject-public-key-info>
<pki:extensions pki:count=\"6\">
<pki:extension pki:order=\"1\" pki:critical=\"no\" id=\"2.5.29.15\">
<pki:name xml:lang=\"ru\">Использование ключа</pki:name>
<pki:value xml:lang=\"ru\">
<![CDATA[Цифровая подпись, Неотрекаемость, Шифрование ключей, Шифрование данных (f0)]]>
</pki:value>
</pki:extension>
<pki:extension pki:order=\"2\" pki:critical=\"no\" id=\"2.5.29.14\">
<pki:name xml:lang=\"ru\">Идентификатор ключа субъекта</pki:name>
<pki:value xml:lang=\"ru\">
<![CDATA[fb e3 98 a8 fd 82 3b ea c7 90 df d9 67 11 7a 64 a5 80 c7 b6]]>
</pki:value>
</pki:extension>
<pki:extension pki:order=\"3\" pki:critical=\"no\" id=\"2.5.29.37\">
<pki:name xml:lang=\"ru\">Улучшенный ключ</pki:name>
<pki:value xml:lang=\"ru\">
<![CDATA[Пользователь Центра Регистрации, HTTP, TLS клиент (1.2.643.2.2.34.6), Проверка подлинности клиента (1.3.6.1.5.5.7.3.2)]]>
</pki:value>
</pki:extension>
<pki:extension pki:order=\"4\" pki:critical=\"no\" id=\"2.5.29.35\">
<pki:name xml:lang=\"ru\">Идентификатор ключа центра сертификатов</pki:name>
<pki:value xml:lang=\"ru\">
<![CDATA[Идентификатор ключа=15 31 7c b0 8d 1a de 66 d7 15 9c 49 52 97 17 24 b9 01 7a 83]]>
</pki:value>
</pki:extension>
<pki:extension pki:order=\"5\" pki:critical=\"no\" id=\"2.5.29.31\">
<pki:name xml:lang=\"ru\">Точки распространения списков отзыва (CRL)</pki:name>
<pki:value xml:lang=\"ru\">
<![CDATA[[1]Точка распределения списка отзыва (CRL): Имя точки распространения:Полное имя:URL=http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl]]>
</pki:value>
</pki:extension>
<pki:extension pki:order=\"6\" pki:critical=\"no\" id=\"1.3.6.1.5.5.7.1.1\">
<pki:name xml:lang=\"ru\">Доступ к информации о центрах сертификации</pki:name>
<pki:value xml:lang=\"ru\">
<![CDATA[[1]Доступ к сведениям центра сертификации: метод доступа=Поставщик центра сертификации (1.3.6.1.5.5.7.48.2), дополнительное имя=URL=http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt, [2]Доступ к сведениям центра сертификации: метод доступа=Протокол определения состояния сертификата через сеть (1.3.6.1.5.5.7.48.1), дополнительное имя=URL=http://testca.cryptopro.ru/ocsp/ocsp.srf]]>
</pki:value>
</pki:extension>
</pki:extensions>
<pki:signed-content>
<pki:signature-algorithm>
<pki:algorithm pki:id=\"1.2.643.2.2.3\">
<pki:name xml:lang=\"ru\">ГОСТ Р 34.11/34.10-2001</pki:name>
</pki:algorithm>
</pki:signature-algorithm>
<pki:signature-value>
<pki:value pki:unused-bits=\"0\">
<![CDATA[AE 23 FF 85 A0 A7 21 5A 02 FA B4 A3 27 F8 DB 86 77 6A 03 DE B5 7C 55 80 EE 7C 60 E1 60 57 FC 15 BB 11 22 F9 E6 B9 C9 F0 45 32 33 70 FA F7 3D B2 2E 11 5C 92 92 B6 0E CB B0 B3 C0 21 27 06 58 F5]]>
</pki:value>
</pki:signature-value>
</pki:signed-content>
</pki:certificate>"
Получение списка запросов на отзыв/приостановление/возобновление
Параметр | Значение |
---|---|
HTTP-метод | GET |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/revokerequests |
Параметры | cert_id - идентификатор сертификата |
Возвращаемое значение | List<DSSRevRequest> - Список сертификатов |
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Cертификат с указанным ID не найден |
Пример запроса
GET https://host/SignServer/rest/api/v2/certificates/15/revokerequests HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1Qi ... FQKc8WFHkugEg
Host: host
Пример ответа
HTTP/1.1 200 OK
Content-Length: 4263
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
[{
"Base64Request": "MIILTAYJKoZIhvcNAQcCoIILPTC ... SPQVB97aK36gqswNYKW3X8NGRK0li+Q==",
"ID": "6a5c8b4a-52c6-e811-80db-00155d454d12",
"CertificateAuthorityID": 6,
"Status": "PENDING",
"RevInfo": {
"RevocationReason": "CRL_REASON_CERTIFICATE_HOLD",
"RevocationDate": "0001-01-01T00:00:00",
"RevocationComments": "",
"UnholdDate": "2018-10-25T14:48:00",
"DistName": null,
"RequestDate": "2018-10-02T14:48:59",
"ApproveDate": "0001-01-01T00:00:00",
"UnholdAction": "U",
"SignedRequest": null
}
}
]
Установка сертификата
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates |
Параметры | certificate - BASE64-содержимое сертификата |
Возвращаемое значение | DSSCertificate - Сертификат пользователя |
HTTP-код | Ошибка | Описание |
---|---|---|
400 | request_not_found | Не найден соответствующий сертификату запрос |
400 | invalid_certificate_format | Некорректный формат входных данных |
400 | appropriate_enroll_not_found | Не найден соответствующий обработчик УЦ |
400 | invalid_request_status | Соответствующий запрос не находится в состоянии "Обрабатывается" (PENDING ) |
Пример запроса
POST https://host/SignServer/rest/api/v2/certificates/ HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8TElfEktxVFCuR27tUg
Content-Type: application/json; charset=utf-8
Host: host
Expect: 100-continue
{"certificate":"MIIC/jCCAq2gAwIBAgITEgAv ..."}
Пример ответа
{
"CertificateType": "ClientSide",
"RemainingPinAttempts": 2147483647,
"UserId": "6c42e75a-d2fe-4b18-8ccd-61981c0706dd",
"Storage": "Mobile",
"SubjectName": [
{
"IsRequired": false,
"Order": 0,
"OID": "2.5.4.3",
"Name": "Общее имя",
"Value": "Irene Heller",
"StringIdentifier": "CN"
},
{
"IsRequired": false,
"Order": 3,
"OID": "2.5.4.6",
"Name": "Страна/регион",
"Value": "RU",
"StringIdentifier": "C"
}
],
"IssuerName": [
{
"IsRequired": false,
"Order": 0,
"OID": "2.5.4.3",
"Name": "Общее имя",
"Value": "Тестовый подчиненный УЦ ООО \"КРИПТО-ПРО\" ГОСТ 2012 (УЦ 2.0)",
"StringIdentifier": "CN"
},
{
"IsRequired": false,
"Order": 7,
"OID": "2.5.4.10",
"Name": "Организация",
"Value": "ООО \"КРИПТО-ПРО\"",
"StringIdentifier": "O"
},
{
"IsRequired": false,
"Order": 6,
"OID": "2.5.4.9",
"Name": "Адрес",
"Value": "ул. Сущёвский вал д. 18",
"StringIdentifier": "STREET"
},
{
"IsRequired": false,
"Order": 5,
"OID": "2.5.4.7",
"Name": "Город",
"Value": "Москва",
"StringIdentifier": "L"
},
{
"IsRequired": false,
"Order": 4,
"OID": "2.5.4.8",
"Name": "Область",
"Value": "77 Москва",
"StringIdentifier": "S"
},
{
"IsRequired": false,
"Order": 3,
"OID": "2.5.4.6",
"Name": "Страна/регион",
"Value": "RU",
"StringIdentifier": "C"
},
{
"IsRequired": false,
"Order": 10,
"OID": "1.2.643.100.1",
"Name": "ОГРН",
"Value": "1037700085444",
"StringIdentifier": "ОГРН"
},
{
"IsRequired": false,
"Order": 14,
"OID": "1.2.840.113549.1.9.1",
"Name": "Адрес E-Mail",
"Value": "info@cryptopro.ru",
"StringIdentifier": "E"
},
{
"IsRequired": false,
"Order": 13,
"OID": "1.2.643.100.4",
"Name": "ИНН ЮЛ",
"Value": "7717107991",
"StringIdentifier": "ИНН ЮЛ"
}
],
"Thumbprint": "66A8A7E6942E7FB284D150EA18C9FA1BFCB75774",
"ValidFrom": 1645897529,
"ValidTo": 1653587729,
"ID": 12160,
"DName": "CN=Irene Heller, C=RU",
"CertificateBase64": "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",
"Status": {
"Value": "ACTIVE",
"RevocationInfo": null,
"PinCode": null,
"ActiveCertId": 0
},
"IsDefault": false,
"CertificateAuthorityID": 1,
"CspID": "b3c2d004-48dd-4c40-826f-43928f3729b6",
"HashAlgorithms": [
"GR 34.11-2012 256"
],
"ProviderName": null,
"ProviderType": 0,
"PrivateKeyNotBefore": "2022-02-26T20:55:38.95",
"PrivateKeyNotAfter": "2023-07-26T20:55:38.95",
"HasPin": false,
"FriendlyName": ""
}
Смена ПИН-кода
Параметр | Значение |
---|---|
HTTP-метод | POST, PATCH |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/pin |
Параметры | cert_id - идентификатор сертификата ChangePinOperationInput - данные для смены ПИН-кода |
Возвращаемое значение | OperationInfo> - Результат операции |
HTTP-код | Ошибка | Описание |
---|---|---|
400 | certificate_not_found_id | Cертификат с указанным ID не найден |
400 | invalid_pin | Неверно введен текущий ПИН-код |
Пример запроса
POST https://host/SignServer/rest/api/v2/certificates/15/pin HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiL ... 0jbCsDg7nx9Raz4KhIP6FrowzA
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 66
Expect: 100-continue
{"OldPin":"","NewPin":"1234"}
Пример ответа
{
"Operation": {
"Id": null,
"Result": {},
"Status": "Completed",
"Error": null,
"ErrorDescription": null,
"ExpirationDate": 1645908413
}
}
Валидация ПИН-кода
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/pin/check |
Параметры | cert_id - идентификатор сертификата ValidatePinRequest - Запрос на валидацию ПИН-кода |
Возвращаемое значение | В случае, если ValidatePinRequest содержит CheckAttempts со значением true , возвращает объект ValidatePinResultВ противном случае возвращается bool значение, сообщающее о том, завершилась ли валидация успешно. |
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Cертификат с указанным ID не найден |
Пример запроса
POST /SignServer/rest/api/v2/certificates/5/pin/check HTTP/1.1
Content-Type: application/json; charset=utf-8
Authorization: Bearer eyJ0eXA...
cache-control: no-cache
{"CheckAttempts":true,"pin":"1234"}
Пример ответа
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Thu, 14 Mar 2019 13:18:44 GMT
Content-Length: 64
{"IsValid":false,"ErrorDescription":"key_blocked","Remaining":0}
Назначение сертификата по умолчанию
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/default |
Параметры | cert_id - идентификатор сертификата DefaultProperty - Данные для назначения сертификата по умолчанию |
Возвращаемое значение | Метод не имеет возвращаемого значения |
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Cертификат с указанным ID не найден |
Пример запроса
POST https://host/SignServer/rest/api/v2/certificates/15/default HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJh ... 8TElfEktxVFCuR27tUg
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 16
Expect: 100-continue
{"Default":true}
Пример ответа
HTTP/1.1 200 OK
Content-Length: 0
Server: Microsoft-IIS/7.5
Назначение дружественного имени
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/friendlyname |
Параметры | cert_id - идентификатор сертификата FriendlyNameProperty - Данные для назначения дружественного имени |
Возвращаемое значение | Метод не имеет возвращаемого значения |
Примечание
Дружественное имя должно быть уникально среди всех сертификатов пользователя.
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Cертификат с указанным ID не найден | |
400 | duplicate_friendly_name | Указанное дружественно имя уже назначено |
400 | invalid_friendly_name_length | Длина дружественного имени больше 255 символов |
Пример запроса
POST https://host/SignServer/rest/api/v2/certificates/15/friendlyname HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJK ... d0KhU_-Qz8jgDFlcfU_RMA
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 32
Expect: 100-continue
{"FriendlyName":"Friendly Name"}
Пример ответа
HTTP/1.1 200 OK
Content-Length: 0
Server: Microsoft-IIS/7.5
Отзыв/аннулирование сертификата
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/status |
Параметры | cert_id - идентификатор сертификата ChangeCertificateStatusOperationInput - Запрос создания операции смены статуса сертификата |
Возвращаемое значение | OperationInfo - Результат операции |
При аннулировании сертификата в поле Status->Value
должно быть указано значение 2 (REVOKED)
В структуре Status->RevocationInfo
необходимо заполнить:
RevocationReason
- причину аннулирования сертификата CertRevokeReasonEnumRevocationDate
(опционально) - дату аннулирования, если требуется аннулировать сертификат в будущемRevocationComments
(опционально) - комментарий
Формат даты RevocationDate
- yyyy-MM-dd hh:mm:ss (0001-01-01 00:00:00) или yyyy-MM-ddThh:mm:ss (0001-01-01T00:00:00).
Запрос на аннулирование может быть подписан действующим сертификатом пользователя. В этом случае необходимо заполнить поля
ActiveCertId
и PinCode
.
Примечание
Подпись запросов на аннулирование/приостановление/возобновление возможна только если в настройках модуля интеграции с УЦ 2.0 выставлен флаг AllowUserMode. Настройку должен выполнить Администратор DSS.
HTTP-код | Ошибка | Описание |
---|---|---|
400 | certificate_not_found_id | Cертификат с указанным ID не найден |
400 | invalid_parameters | Невалидные параметры запроса |
400 | invalid_certificate_status | Повторное аннулирование сертификата |
В случае если сертификат был отозван другими средствами, то при попытке отозвать сертификат в поле Error
будет
выставлен код ошибки InternalError и ErrorDescription
"Статус сертификата не допускает выполнения операции отзыва."
Пример запроса
POST https://host/SignServer/rest/api/v2/certificates/16/status HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJ ... VCgDbAc5XLyjt0pwkET7I2fg
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 228
Expect: 100-continue
{
"Status":{
"Value": 2,
"RevocationInfo": {
"RevocationReason": 1,
"RevocationComments": "Comment"
}
}
}
Запрос с указанием даты аннулирования:
POST https://host/SignServer/rest/api/v2/certificates/16/status HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJ ... VCgDbAc5XLyjt0pwkET7I2fg
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 228
Expect: 100-continue
{
"Status":{
"Value": 2,
"RevocationInfo": {
"RevocationReason": 1,
"RevocationComments": "Comment",
"RevocationDate":"2018-10-05T12:58"
}
}
}
Пример ответа
{
"Operation": {
"Id": null,
"Result": {},
"Status": "Completed",
"Error": null,
"ErrorDescription": null,
"ExpirationDate": 1645910735
}
}
Приостановление
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/status |
Параметры | cert_id - идентификатор сертификата ChangeCertificateStatusOperationInput - Запрос создания операции смены статуса сертификата |
Возвращаемое значение | OperationInfo> - Результат операции |
При аннулировании сертификата в поле Value
должно быть указано значение 3 (HOLD)
В запросе необходимо указать:
UnholdDate
- дату возобновления сертификатаUnholdAction
- причину аннулирования, которая будет указана в CRL, если сертификат не будет возобновлен до датыUnholdDate
(CertRevokeReasonEnum).RevocationComments
(опционально) - комментарий
Если требуется приостановить сертификат в будущем, то необходимо указать значение поля RevocationDate
.
Формат даты RevocationDate
- yyyy-MM-dd hh:mm:ss (0001-01-01 00:00:00) или yyyy-MM-ddThh:mm:ss (0001-01-01T00:00:00).
Запрос на аннулирование может быть подписан действующим сертификатом пользователя. В этом случае необходимо заполнить поля
ActiveCertId
и PinCode
.
Примечание
Подпись запросов на аннулирование/приостановление/возобновление возможна только если в настройках модуля интеграции с УЦ 2.0 выставлен флаг AllowUserMode. Настройку должен выполнить Администратор DSS.
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Cертификат с указанным ID не найден | |
400 | invalid_parameters | Невалидные параметры запроса |
400 | invalid_certificate_status | Повторное аннулирование сертификата |
Пример запроса
POST https://host/SignServer/rest/api/v2/certificates/19/status HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1QiLC ... vZdqvGkG431UxNH0EA
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 278
Expect: 100-continue
{
"Status":{
"Value": 3,
"RevocationInfo": {
"RevocationComments": "Comment",
"UnholdDate": "2018-10-12T12:13:58",
"UnholdAction": "0"
}
}
}
Пример ответа
{
"Operation": {
"Id": null,
"Result": {},
"Status": "Completed",
"Error": null,
"ErrorDescription": null,
"ExpirationDate": 1645910735
}
}
Возобновление
Параметр | Значение |
---|---|
HTTP-метод | POST |
Путь | https://dss.cryptopro.ru/SignServer/rest/api/v2/certificates/{cert_id}/status |
Параметры | cert_id - идентификатор сертификата ChangeCertificateStatusOperationInput - Запрос создания операции смены статуса сертификата |
Возвращаемое значение | OperationInfo> - Результат операции |
При аннулировании сертификата в поле Value
должно быть указано значение 1 (ACTIVE)
Запрос на аннулирование может быть подписан действующим сертификатом пользователя. В этом случае необходимо заполнить поля
ActiveCertId
и PinCode
.
Примечание
Подпись запросов на аннулирование/приостановление/возобновление возможна только если в настройках модуля интеграции с УЦ 2.0 выставлен флаг AllowUserMode. Настройку должен выполнить Администратор DSS.
HTTP-код | Ошибка | Описание |
---|---|---|
404 | Cертификат с указанным ID не найден |
Пример запроса
POST https://host/SignServer/rest/api/v2/certificates/19/status HTTP/1.1
Authorization: Bearer eyJ0eXAiOiJKV1Qi ... ZkmjxmKuKej6f2Cyhg
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 245
Expect: 100-continue
{
"Status":{
"Value": 1,
"RevocationInfo": {
"RevocationComments": "Comment",
}
}
}
Пример ответа
{
"Operation": {
"Id": null,
"Result": {},
"Status": "Completed",
"Error": null,
"ErrorDescription": null,
"ExpirationDate": 1645910735
}
}