77 lines
6.7 KiB
Text
77 lines
6.7 KiB
Text
|
|
Подписание (в автоматическом режиме) запросов в ЕСИА ключом ЭП.
|
|||
|
|
|
|||
|
|
Должно быть выполнено тестирование со следующими вариантами статуса сертификата ключа проверки ЭП:
|
|||
|
|
|
|||
|
|
1. Действительный сертификат компонента ervu-sign-module, изготовленный Удостоверяющим центром – запрос в ЕСИА должен быть успешно отправлен:
|
|||
|
|
|
|||
|
|
1.1. Установить сертификат в систему, согласно "Инструкции по установке".
|
|||
|
|
|
|||
|
|
1.2. Открыть приложение - запрос в ЕСИА должен быть успешно отправлен.
|
|||
|
|
|
|||
|
|
2. Проверка статуса сертификата не может быть выполнена, так как в Системе отсутствует CRL, соответствующий Удостоверяющему центру – запрос в ЕСИА не должен быть отправлен:
|
|||
|
|
|
|||
|
|
2.1. Удалить CRL, соответствующий Удостоверяющему центру, изготовившему сертификат компонента ervu-sign-module, выполнив команду от имени ervu:
|
|||
|
|
/opt/cprocsp/bin/amd64/certmgr -delete -crl -store ucache -dn uc_fk@roskazna.ru
|
|||
|
|
/opt/cprocsp/bin/amd64/certmgr -delete -crl -store uca -dn uc_fk@roskazna.ru
|
|||
|
|
|
|||
|
|
2.2. Отключить доступ к УЦ (например, прописав в /etc/hosts недоступный ip-адрес для хоста УЦ, указанного в свойствах сертификата):
|
|||
|
|
Пример /etc/hosts:
|
|||
|
|
127.0.0.1 crl.roskazna.ru
|
|||
|
|
|
|||
|
|
2.3. Перезапустить сервис подписания ervu-sign-module, чтобы сбросить кэш:
|
|||
|
|
systemctl restart ervu-sign-module
|
|||
|
|
|
|||
|
|
2.4. Открыть приложение - запрос в ЕСИА не должен быть отправлен. Пользователю отобразится ошибка.
|
|||
|
|
|
|||
|
|
В логах ЛК РП должно быть следующее:
|
|||
|
|
Caused by: java.lang.RuntimeException: 500 500 Internal Server Error
|
|||
|
|
at ru.micord.ervu.security.esia.service.EsiaAuthService.errorHandler(EsiaAuthService.java:351) ~[classes/:1.10.0-SNAPSHOT]
|
|||
|
|
at ru.micord.ervu.security.esia.service.EsiaAuthService.signMap(EsiaAuthService.java:340) ~[classes/:1.10.0-SNAPSHOT]
|
|||
|
|
at ru.micord.ervu.security.esia.service.EsiaAuthService.generateAuthCodeUrl(EsiaAuthService.java:101) ~[classes/:1.10.0-SNAPSHOT]
|
|||
|
|
|
|||
|
|
В логах ervu-sign-module должно быть следующее:
|
|||
|
|
WARN: The certificate is not trusted. CERT_TRUST_STATUS: '0x00000040'
|
|||
|
|
ERROR: get_cert_chain exit with error
|
|||
|
|
ERROR: sign_hash_data exit with error. Last error code: 0x00000000
|
|||
|
|
ERROR: cryptopro_sign exit with error
|
|||
|
|
ERROR: sign_content exit with error
|
|||
|
|
ERROR: response status: '500 Internal Server Error'
|
|||
|
|
|
|||
|
|
CERT_TRUST_STATUS = 0x00000040 (CERT_TRUST_REVOCATION_STATUS_UNKNOWN) означает, что статус отзыва сертификата или одного из сертификатов в цепочке сертификатов неизвестен.
|
|||
|
|
|
|||
|
|
2.5. Восстановить доступ к УЦ. Все CRL будут автоматически установлены при следующих запросах на подпись.
|
|||
|
|
|
|||
|
|
3. Сертификат действителен, но выдан УЦ, корневой сертификат которого не установлен в системе – запрос в ЕСИА не должен быть отправлен:
|
|||
|
|
|
|||
|
|
3.1. Получить цепочку сертификатов и SHA1 отпечаток корневого сертификата УЦ, выполнив команду от имени ervu:
|
|||
|
|
/opt/cprocsp/bin/amd64/certmgr -list -thumbprint 0f948ba2b4866bf92e77f768a01add655daa5748 -chain
|
|||
|
|
|
|||
|
|
Результатом команды будет цепочка сертификатов с перечнем их свойств, из которого необходимо получить значение поля "SHA1 отпечаток" для одного из корневых сертификатов.
|
|||
|
|
|
|||
|
|
3.2. Из Системы удалить корневой сертификат Удостоверяющего центра, выполнив команду от имени root. Например, удалить сертификат Минцифры России, выполнив команду от имени root:
|
|||
|
|
/opt/cprocsp/bin/amd64/certmgr -delete -store mRoot -thumbprint 2f0cb09be3550ef17ec4f29c90abd18bfcaad63a
|
|||
|
|
|
|||
|
|
3.3. Открыть приложение - запрос в ЕСИА не должен быть отправлен. Пользователю отобразится ошибка.
|
|||
|
|
|
|||
|
|
В логах ЛК РП должно быть следующее:
|
|||
|
|
Caused by: java.lang.RuntimeException: 500 500 Internal Server Error
|
|||
|
|
at ru.micord.ervu.security.esia.service.EsiaAuthService.errorHandler(EsiaAuthService.java:351) ~[classes/:1.10.0-SNAPSHOT]
|
|||
|
|
at ru.micord.ervu.security.esia.service.EsiaAuthService.signMap(EsiaAuthService.java:340) ~[classes/:1.10.0-SNAPSHOT]
|
|||
|
|
at ru.micord.ervu.security.esia.service.EsiaAuthService.generateAuthCodeUrl(EsiaAuthService.java:101) ~[classes/:1.10.0-SNAPSHOT]
|
|||
|
|
|
|||
|
|
В логах ervu-sign-module должно быть следующее:
|
|||
|
|
|
|||
|
|
WARN: The certificate is not trusted. CERT_TRUST_STATUS: '0x00000020'
|
|||
|
|
ERROR: get_cert_chain exit with error
|
|||
|
|
ERROR: sign_hash_data exit with error. Last error code: 0x80092004
|
|||
|
|
ERROR: cryptopro_sign exit with error
|
|||
|
|
ERROR: sign_content exit with error
|
|||
|
|
ERROR: response status: '500 Internal Server Error'
|
|||
|
|
|
|||
|
|
CERT_TRUST_STATUS = 0x00000020 (CERT_TRUST_IS_UNTRUSTED_ROOT) означает, что сертификат или цепочка сертификатов основана на ненадежном корневом сертификате.
|
|||
|
|
|
|||
|
|
3.4. Восстановить все корневые сертификаты, которые были удалены, выполнив для каждого команду от имени root. Для восстановления сертификата Минцифры России выполните команду от имени root:
|
|||
|
|
/opt/cprocsp/bin/amd64/certmgr -install -store mRoot -file guc2022.crt
|
|||
|
|
|
|||
|
|
Сертификат Минцифры России доступен по ссылке: http://reestr-pki.ru/cdp/guc2022.crt
|