Показать/Скрыть содержание

    Конечная точка Requests

    Конечная точка requests предоставляет следующие методы:

    • Создание запроса на сертификат
    • Получение списка запросов на сертификат
    • Получение запроса на сертификат по идентификатору
    • Удаление запроса на сертификат по идентификатору
    • Получение содержимого запроса на сертификат
    • Одобрение и отклонение запроса на сертификат
    • Одобрение и отклонение запроса на аннулирование/приостановление/возобновление

    Создание запроса на сертификат

    Параметр Значение
    HTTP-метод POST
    Путь https://dss.cryptopro.ru/SignServer/rest/api/v2/requests
    Параметры CreateCertificateRequestOperationInput - Запрос на создание сертификата
    Возвращаемое значение OperationInfo - Результат операции

    Типовые ошибки

    HTTP-код Ошибка Описание
    400 pending_requests_exist У пользователя есть необработанные запросы на сертификат
    400 invalid_enroll Модуль УЦ с указанным идентификатором не найден
    400 invalid_template Запрос не содержит валидного шаблона сертификата
    400 invalid_subject_name Не задан обязательный компонент имени субъекта

    Подробнее о выпуске запроса на сертификат смотреть раздел: Выпуск сертификата

    Пример запроса

    POST /SignServerClient/rest/api/v2/requests HTTP/1.1
    Host: hostname
    Content-Type: application/json
    Authorization: Bearer eyJ0eXAiOiJKV ... _JzQqlMp69DVgQFg_Q
    
    Content-Length: 228
    
    {
        "AuthorityId":2,
        "PinCode":"",
        "DistinguishedName":{"2.5.4.3":"Jared Murphy DVM","2.5.4.6":"RU"},
        "Parameters":{
            "TemplateOid":"1.2.643.2.2.50.1.9.16527438.14395276.12208347.4971100.25941.39364"
        }
    }
    

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

    {
        "Operation": {
            "Id": null,
            "Result": {
                "CertificateType": "ServerSide",
                "Storage": "Server",
                "Base64Request": "MIIBXDCCAQkCAQAwJTELMAkGA1UEBhMCUlUxFjAUBgNVBAMTDVl2b25uZSBIaXJ0aGUwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQECAgNDAARASFv6ULuXT8X4ndYs8V4RiD0Z/DVWUH6FCIo8O0jRS7zkEyRo2+VcLTpF0riXNVKFRXizzB7G3BJoW5N8WV63xqB1MHMGCisGAQQBgjcCAQ4xZTBjMAsGA1UdDwQEAwIE8DAdBgNVHQ4EFgQUSR7S1ethA7vtYTrquPBgz10u3EswNQYJKwYBBAGCNxUHBCgwJgYeKoUDAgIyAQmH8OBOhu7PDIXpkVuCr7RcgcpVgrNEAgEBAgEAMAoGCCqFAwcBAQMCA0EAkHbqYx0T8PSwYpuF0n/q6n2yk6+0fxxxk10Bs4aq3rKPgLVMwVEoWXApnGpcpgvg7RsRb43urDQ2gWcBiXyHVg==",
                "CertificateAuthorityID": 2,
                "CADisplayName": null,
                "DistName": "CN=Yvonne Hirthe, C=RU",
                "Subject": "Yvonne Hirthe",
                "Status": "PENDING",
                "ID": 13236,
                "CARequestID": null,
                "CertificateID": 0,
                "RequestType": "Certificate",
                "GroupID": "07d4e7c3-417d-49d6-9f91-b345c853438f"
            },
            "Status": "Completed",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 1645979561
        }
    }
    

    Пример ответа с запросом подтверждения

    {
        "Operation": {
            "Id": "df2c2226-b4ad-4449-85e3-a42e6655431d",
            "Result": null,
            "Status": "Created",
            "Error": null,
            "ErrorDescription": null,
            "ExpirationDate": 1645980047
        }
    }
    

    Получение списка запросов на сертификат

    Параметр Значение
    HTTP-метод GET
    Путь https://dss.cryptopro.ru/SignServer/rest/api/v2/requests
    Параметры Метод не имеет параметров
    Возвращаемое значение List<DSSCertRequest> - Список созданных запросов на сертификат
    Примечание

    Для получения списка запросов на аннулирование/приостановление/возобновление используйте метод /certificates/{key}/revokerequests. Список запросов на аннулирование, приостановление и возобновление сертификата может быть получен только для сертификата, выпущенного через модуль интеграции с КриптоПро УЦ 2.0.

    Пример запроса

    GET https://host/SignServer/rest/api/v2/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": "ClientSide",
            "Storage": "Mobile",
            "Base64Request": "MIIBOzCB6QIBADAkMQswCQYDVQQGEwJSVTEVMBMGA1UEAxMMSXJlbmUgSGVsbGVyMGYwHwYIKoUDBwEBAQEwEwYHKoUDAgIkAAYIKoUDBwEBAgIDQwAEQEhlt31eJSEc/oDVRvnHVl56//UNacZ5GAP7/HlDZqjXJrEgt59ji6lAF1hGJQ/iqsDyMHcDrlvAPxwAIMk5fyWgVjBUBgorBgEEAYI3AgEOMUYwRDALBgNVHQ8EBAMCBPAwNQYJKwYBBAGCNxUHBCgwJgYeKoUDAgIyAQmH8OBOhu7PDIXpkVuCr7RcgcpVgrNEAgEBAgEAMAoGCCqFAwcBAQMCA0EAEuEDF+OALFdbM4mYyUHwl45lG2FS9Q6OyMCrjvdjimUoIR/kr6qLQkJmiZ4vATy26umALeAMz/kooKGe+W8qJw==",
            "CertificateAuthorityID": 1,
            "CADisplayName": null,
            "DistName": "CN=Irene Heller, C=RU",
            "Subject": "Irene Heller",
            "Status": "ACCEPTED",
            "ID": 13222,
            "CARequestID": "cdf39b67-d9a4-4029-a41f-ae4801276378",
            "CertificateID": 12160,
            "RequestType": "Certificate",
            "GroupID": "b3c2d004-48dd-4c40-826f-43928f3729b6"
        },
        {
            "CertificateType": "ServerSide",
            "Storage": "Server",
            "Base64Request": "MIIBXjCCAQsCAQAwJzELMAkGA1UEBhMCUlUxGDAWBgNVBAMTD1ZpY2tpIFBvbGxpY2ggVjBmMB8GCCqFAwcBAQEBMBMGByqFAwICJAAGCCqFAwcBAQICA0MABECD28Rc6WzcHY2Snm7JvjZWfvHiYI2/N5Rbh9bWagsVJupy+ShYHo8PBf6/YNWp72p0qvy8iZp2hT1IP8zDQWjfoHUwcwYKKwYBBAGCNwIBDjFlMGMwCwYDVR0PBAQDAgTwMB0GA1UdDgQWBBT9lf03+mtSVtUK0zB9S+bGGjeHgjA1BgkrBgEEAYI3FQcEKDAmBh4qhQMCAjIBCYfw4E6G7s8MhemRW4KvtFyBylWCs0QCAQECAQAwCgYIKoUDBwEBAwIDQQDEqTOmyvxsfqp0/hDWG5IZp3K+GtwsN13nCpGsTQpSFhiyx4QZAMc/Fs3JSbOEVEBR9G8W+GAWlQpHHg2CgKy2",
            "CertificateAuthorityID": 1,
            "CADisplayName": null,
            "DistName": "CN=Vicki Pollich V, C=RU",
            "Subject": "Vicki Pollich V",
            "Status": "ACCEPTED",
            "ID": 13235,
            "CARequestID": "a4c9064e-eb02-493e-9416-ae4801694a81",
            "CertificateID": 12173,
            "RequestType": "Certificate",
            "GroupID": "07d4e7c3-417d-49d6-9f91-b345c853438f"
        }
    ]
    

    Получение запроса на сертификат по идентификатору

    Параметр Значение
    HTTP-метод GET
    Путь https://dss.cryptopro.ru/SignServer/rest/api/v2/requests/{req_id}
    Параметры Идентификатор запроса на сертификат
    Возвращаемое значение DSSCertRequest - запрос на сертификат

    Типовые ошибки

    HTTP-код Ошибка Описание
    404 Запрос на сертификат с указанным ID не найден

    Пример запроса

    GET https://host/SignServer/rest/api/v2/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",
            "Storage": "Server",
            "Base64Request": "MIIBXjCCAQsCAQAwJzELMAkGA1UEBhMCUlUxGDAWBgNVBAMTD1ZpY2tpIFBvbGxpY2ggVjBmMB8GCCqFAwcBAQEBMBMGByqFAwICJAAGCCqFAwcBAQICA0MABECD28Rc6WzcHY2Snm7JvjZWfvHiYI2/N5Rbh9bWagsVJupy+ShYHo8PBf6/YNWp72p0qvy8iZp2hT1IP8zDQWjfoHUwcwYKKwYBBAGCNwIBDjFlMGMwCwYDVR0PBAQDAgTwMB0GA1UdDgQWBBT9lf03+mtSVtUK0zB9S+bGGjeHgjA1BgkrBgEEAYI3FQcEKDAmBh4qhQMCAjIBCYfw4E6G7s8MhemRW4KvtFyBylWCs0QCAQECAQAwCgYIKoUDBwEBAwIDQQDEqTOmyvxsfqp0/hDWG5IZp3K+GtwsN13nCpGsTQpSFhiyx4QZAMc/Fs3JSbOEVEBR9G8W+GAWlQpHHg2CgKy2",
            "CertificateAuthorityID": 1,
            "CADisplayName": null,
            "DistName": "CN=Vicki Pollich V, C=RU",
            "Subject": "Vicki Pollich V",
            "Status": "ACCEPTED",
            "ID": 13235,
            "CARequestID": "a4c9064e-eb02-493e-9416-ae4801694a81",
            "CertificateID": 12173,
            "RequestType": "Certificate",
            "GroupID": "07d4e7c3-417d-49d6-9f91-b345c853438f"
        }
    

    Удаление запроса на сертификат по идентификатору

    Параметр Значение
    HTTP-метод DELETE
    Путь https://dss.cryptopro.ru/SignServer/rest/api/v2/requests/{req_id}
    Параметры Идентификатор запроса на сертификат
    Возвращаемое значение Метод не имеет возвращаемого значения
    Примечание

    Если запрос на сертификат с указанным идентификатором не найден, сервис вернёт HTTP-код 200.

    Пример запроса

    DELETE https://host/SignServer/rest/api/v2/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/v2/requests/{req_id}/content?format={format}&authorityId={ca_id}
    Параметры req_id - Идентификатор запроса на сертификат
    format - Формат представления содержимого запроса.
    ca_id - Идентификатор Удостоверяющего Центра
    Возвращаемое значение Содержимое запроса на сертификат

    Описание форматов представления запроса на сертификат - DSSCertificateFormatEnum

    Типовые ошибки

    HTTP-код Ошибка Описание
    404 Запрос на сертификат с указанным ID не найден

    Пример запроса

    GET https://host/SignServer/rest/api/v2/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/v2/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/v2/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/v2/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/v2/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/v2/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
    
    В начало © ООО "КРИПТО-ПРО", 2000–2025