А.1 Проверка взаимодействия с внешними информационными системами в части получения и передачи сведений о сертификатах УКЭП и о событиях жизненного цикла сертификатов УКЭП посредством прикладного программного интерфейса (API) для использования в высоконагруженном сервисе.
Проверка обеспечивает проверку реализации пункта 1 Требований к функциям Заявки: сведения о сертификатах УКЭП и о событиях их жизненного цикла принимаются и передаются через прикладной программный интерфейс (API). Подтверждается приём корректного сертификата УКЭП в приватный канал реестра с возвратом идентификатора записи вида «дата начала действия;hashTBS», поиск сертификата по заданному фильтру, изменение статуса сертификата и логическая отмена сертификата. Созданная запись о сертификате и сформированные события истории используются далее при проверках А.4 и А.8.
Предварительные условия: развёрнут тестовый стенд с каналами сертификатов УКЭП; демонстрирующему предоставлены тестовые сертификаты УКЭП, ключ доступа к REST API (заголовок x-api-key) и учётные данные для подключения к базе глобального состояния (DBeaver).
№
Шаг
Ожидаемый результат
1
Выполнить запрос «Создать запись о сертификате в приватном канале» (POST /certificate/qual/create), передав сертификат УКЭП в формате PEM: curl -X POST 'http://{host}:{port}/certificate/qual/create' -H 'Content-Type: application/json' -H 'x-api-key: {ключ доступа}' -d '{"certificate": "-----BEGIN CERTIFICATE-----MIIIEDCCB72gAwIBAgILAJ98pbYAAAAACjwwCgYIKoUDBwEBAwIw…-----END CERTIFICATE-----"}'
HTTP 200; возвращён идентификатор записи вида YYYY-MM-DDTHH:MM:SSZ;hashTBS (далее — {cert}): {"cert": "2025-03-15T09:00:00Z;6b86b273ff34...52ddb7875b4c"}
2
Выполнить запрос «Изменить статус сертификата в приватном канале» (POST /certificate/qual/status-update) с event = 2 (прекращение действия), причиной reason = 1 (ключ подписи скомпрометирован) и updatedAt: curl -X POST 'http://{host}:{port}/certificate/qual/status-update' -H 'Content-Type: application/json' -H 'x-api-key: {ключ доступа}' -d '{"cert": "{cert}", "event": "2", "updatedAt": "2025-09-01T00:00:00Z", "reason": "1"}' и запрос «Получить сведения о сертификате» (GET /certificate/qual/{cert}/info): curl -X GET 'http://{host}:{port}/certificate/qual/{cert}/info?logicalCancelFlag=false' -H 'x-api-key: {ключ доступа}'
HTTP 200 по каждому запросу; возвращены сведения о новом событии истории, номер версии события увеличен на 1: {"version": "2", "event": "2", "updatedAt": "2025-09-01T00:00:00Z", "reason": "1", "createdAtCC": "2025-09-01T00:05:00Z"} Сведения о сертификате содержат историю из двух событий: «1» (начало действия сертификата) и «2» (прекращение действия сертификата)
3
Выполнить запрос «Получить данные сертификатов по заданному фильтру» (GET /certificate/qual/search) по ИНН владельца: curl -X GET 'http://{host}:{port}/certificate/qual/search?INN=7743123456' -H 'x-api-key: {ключ доступа}' и запрос «Логическая отмена» (POST /certificate/qual/cancel): curl -X POST 'http://{host}:{port}/certificate/qual/cancel' -H 'Content-Type: application/json' -H 'x-api-key: {ключ доступа}' -d '{"cert": "{cert}"}'
HTTP 200 по каждому запросу; сертификат найден по заданному фильтру; в ответе на запрос логической отмены logicalCancelFlag = true: [{"cert": "2025-03-15T09:00:00Z;6b86b273…5b4c"}] {"cert": "2025-03-15T09:00:00Z;6b86b273…5b4c", "logicalCancelFlag": true}
А.2 Проверка взаимодействия с внешними информационными системами в части получения и передачи сведений о сертификатах УНЭП и о событиях жизненного цикла сертификатов УНЭП посредством прикладного программного интерфейса (API) для использования в высоконагруженном сервисе.
Проверка обеспечивает проверку реализации пункта 2 Требований к функциям Заявки: сведения о сертификатах УНЭП и о событиях их жизненного цикла принимаются и передаются через прикладной программный интерфейс (API). Подтверждается приём корректных сертификатов в каналы неквалифицированных сертификатов (канал сертификатов издателей Госключ и приватный канал неквалифицированных сертификатов) с возвратом идентификатора записи вида «дата начала действия;hashTBS», изменение статуса сертификата и логическая отмена сертификата. Отличие от проверки А.1 — используемые методы каналов неквалифицированных сертификатов. Созданные записи о сертификатах и сформированные события истории используются далее при проверках А.5 и А.9.
Предварительные условия: развёрнут тестовый стенд с каналами неквалифицированных сертификатов (Госключ) и публичным каналом сертификатов УЦ; демонстрирующему предоставлены тестовые сертификаты УНЭП, ключ доступа к REST API (заголовок x-api-key) и учётные данные для подключения к базе глобального состояния (DBeaver).
№
Шаг
Ожидаемый результат
1
Выполнить запрос «Создать запись о сертификате в канале сертификатов издателей Госключ» (POST /certificate/goskey/create), передав сертификат издателя УНЭП в формате PEM: curl -X POST 'http://{host}:{port}/certificate/goskey/create' -H 'Content-Type: application/json' -H 'x-api-key: {ключ доступа}' -d '{"certificate": "-----BEGIN CERTIFICATE-----MIIG…-----END CERTIFICATE-----"}' и запрос «Создать запись о сертификате в приватном канале неквалифицированных сертификатов» (POST /certificate/unqual/create), передав сертификат УНЭП в формате PEM: curl -X POST 'http://{host}:{port}/certificate/unqual/create' -H 'Content-Type: application/json' -H 'x-api-key: {ключ доступа}' -d '{"certificate": "-----BEGIN CERTIFICATE-----MIIF…-----END CERTIFICATE-----"}'
HTTP 200 по каждому запросу; возвращены идентификаторы записей вида YYYY-MM-DDTHH:MM:SSZ;hashTBS (далее — {cert}, идентификатор сертификата УНЭП): {"cert": "2024-06-01T00:00:00Z;61f0a34e41dd60aedd3f4ab48b88ce547b4e0de09c888ecc026a796d1e09a82a"} {"cert": "2025-09-01T09:00:00Z;78239b086f164d8105abefad2425e20caaa4825ec52d0fd1c0d049b8076df81a"}
2
Выполнить запрос «Изменить статус сертификата в приватном канале» (POST /certificate/unqual/status-update) с event = 2 (прекращение действия) и updatedAt: curl -X POST 'http://{host}:{port}/certificate/unqual/status-update' -H 'Content-Type: application/json' -H 'x-api-key: {ключ доступа}' -d '{"cert": "{cert}", "event": "2", "updatedAt": "2025-09-05T00:00:00Z"}'
HTTP 200; возвращены сведения о новом событии истории, номер версии события увеличен на 1: {"version": "2", "event": "2", "updatedAt": "2025-09-05T00:00:00Z", "createdAtCC": "2025-09-05T00:05:00Z"}
3
Выполнить запрос «Логическая отмена» (POST /certificate/unqual/certificate-cancel), передав идентификатор сертификата, зарегистрированного на шаге 1: curl -X POST 'http://{host}:{port}/certificate/unqual/certificate-cancel' -H 'Content-Type: application/json' -H 'x-api-key: {ключ доступа}' -d '{"cert": "{cert}"}'