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

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

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

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

    Изменение свойств сертификата:

    • Назначение сертификата по умолчанию
    • Назначение дружественного имени

    Изменение статуса сертитификата:

    • Отзыв
    Примечание

    В случае использования сценариев авторизации с низким уровнем доверия вызывающая ИС должна убедиться, что полученные сертификаты (данные о сертификатах) соответствуют целевому пользователю.

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

    Параметр Значение
    HTTP-метод GET
    Путь https://{{hostname}}/{{instanceName}}/api/v2/certificates
    Параметры Метод не имеет параметров
    Возвращаемое значение List<DSSCertificateEx> - Список сертификатов

    Запрос

    GET /SignServerClient/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://{{hostname}}/{{instanceName}}/api/v2/certificates/{cert_id}
    Параметры cert_id - идентификатор сертификата
    Возвращаемое значение DSSCertificateEx - Сертификат

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

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

    Запрос

    GET /SignServerClient/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://{{hostname}}/{{instanceName}}/api/v2/certificates/{cert_id}
    Параметры cert_id - Идентификатор сертификата
    Возвращаемое значение OperationInfo> - Результат операции

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

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

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

    DELETE https://{{hostname}}/{{instanceName}}/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://{{hostname}}/{{instanceName}}/api/v2/certificates/{cert_id}/content?format={format}
    Параметры req_id - Идентификатор сертификата,
    format - Формат представления содержимого сертификата
    Возвращаемое значение Содержимое сертификата

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

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

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

    GET https://{{hostname}}/{{instanceName}}/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://{{hostname}}/{{instanceName}}/api/v2/certificates/{cert_id}/revokerequests
    Параметры cert_id - идентификатор сертификата
    Возвращаемое значение List<DSSRevRequest> - Список запросов
    HTTP-код Ошибка Описание
    404 Cертификат с указанным ID не найден

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

    GET https://{{hostname}}/{{instanceName}}/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://{{hostname}}/{{instanceName}}/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://{{hostname}}/{{instanceName}}/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
    Путь https://{{hostname}}/{{instanceName}}/api/v2/certificates/{cert_id}/default
    Параметры cert_id - идентификатор сертификата
    DefaultProperty - Данные для назначения сертификата по умолчанию
    Возвращаемое значение Метод не имеет возвращаемого значения
    HTTP-код Ошибка Описание
    404 Cертификат с указанным ID не найден

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

    POST https://{{hostname}}/{{instanceName}}/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://{{hostname}}/{{instanceName}}/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://{{hostname}}/{{instanceName}}/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, PATCH
    Путь https://{{hostname}}/{{instanceName}}/api/v2/certificates/{cert_id}/status
    Параметры cert_id - идентификатор сертификата
    ChangeCertificateStatusOperationInput - Запрос создания операции смены статуса сертификата
    Возвращаемое значение OperationInfo - Результат операции

    При отзыве сертификата в поле Status->Value должно быть указано значение 2 (REVOKED)

    В структуре Status->RevocationInfo необходимо заполнить следующие поля:

    • RevocationReason - причину отзыва сертификата CertRevokeReasonEnum
    • RevocationDate (опционально) - дату отзыва, если требуется отозвать сертификат в будущем
    • 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. Настройку должен выполнить Администратор.

    HTTP-код Ошибка Описание
    400 certificate_not_found_id Cертификат с указанным ID не найден
    400 invalid_parameters Невалидные параметры запроса
    400 invalid_certificate_status Повторный отзыв сертификата

    В случае если сертификат был отозван другими средствами, то при попытке отозвать сертификат в поле Error будет выставлен код ошибки InternalError и ErrorDescription "Статус сертификата не допускает выполнения операции отзыва."

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

    POST https://{{hostname}}/{{instanceName}}/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://{{hostname}}/{{instanceName}}/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
        }
    }
    
    В начало © ООО "КРИПТО-ПРО", 2000–2025