Добрый день! Возникла проблема
Некоторые подписи не проходят проверку. Приложу пример сертификата и подписи в архиве.
Подпись прикрепленная, при проверке вылетает ошибка:
....
Caused by: ru.CryptoPro.CAdES.exception.CAdESException: Error building certification path for OID.1.2.643.100.5=#120F333131333132303237373030303230, OID.1.2.643.100.3=#120B3036363531393634323838, OID.1.2.643.3.131.1.1=#120C333132303030313934353837, EMAILADDRESS=xxxxxxx@mail.ru, C=RU, ST=31 Белгородская область, L=с. XXXXX, CN=XXXXXXXX, STREET="XXXXXXX", GIVENNAME=XXXXXXX, SURNAME=XXXXX: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target
at ru.CryptoPro.CAdES.CAdESSignerPKCS7Impl.verify(Unknown Source) ~[CAdES.jar:40035]
at ru.CryptoPro.CAdES.CAdESSignerBESImpl.verify(Unknown Source) ~[CAdES.jar:40035]
at ru.CryptoPro.CAdES.cl_1.verify(Unknown Source) ~[CAdES.jar:40035]
... 100 more
Caused by: ru.CryptoPro.AdES.exception.AdESException: Error building certification path for OID.1.2.643.100.5=#120F333131333132303237373030303230, OID.1.2.643.100.3=#120B3036363531393634323838, OID.1.2.643.3.131.1.1=#120C333132303030313934353837, EMAILADDRESS=xxxxxx@mail.ru, C=RU, ST=31 Белгородская область, L=с. XXXXXX, CN=XXXXXXX, STREET="XXXXXX", GIVENNAME=XXXXXX, SURNAME=XXXXX: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target
at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source) ~[AdES-core.jar:40035]
at ru.CryptoPro.AdES.certificate.CertificateChainBuilderImpl.build(Unknown Source) ~[AdES-core.jar:40035]
at ru.CryptoPro.AdES.external.signature.AdESSigner.build(Unknown Source) ~[AdES-core.jar:40035]
at ru.CryptoPro.CAdES.CAdESSignerPKCS7Impl.verify(Unknown Source) ~[CAdES.jar:40035]
at ru.CryptoPro.CAdES.CAdESSignerBESImpl.verify(Unknown Source) ~[CAdES.jar:40035]
at ru.CryptoPro.CAdES.cl_1.verify(Unknown Source) ~[CAdES.jar:40035]
... 100 more
Версия Java: 11
Сертификаты Белинфоналог и минкомсвязи добавлены в cacerts.
На госуслугах подпись проверку проходит.
Никак не могу понять в чем может быть дело, подскажите пожалуйста, что я делаю не так?
P.S. сертификаты, что в касертсах кладутся в доверенные таким образом
import ru.CryptoPro.AdES.certificate.AbstractCertificateChainBuilder;
.....
if (AdESUtility.isSelfSignedForCaCerts(certificate)) {
AbstractCertificateChainBuilder.CACERTS_TRUST_CERTIFICATES.add(certificate);
} else if (!Platform.isIbm && !Platform.isAndroid) {
AbstractCertificateChainBuilder.CACERTS_INTERMEDIATE_CERTIFICATES.add(certificate);
} else if (AdESUtility.isGost(certificate)) {
AbstractCertificateChainBuilder.CACERTS_INTERMEDIATE_CERTIFICATES.add(certificate);
} else {
AbstractCertificateChainBuilder.CACERTS_TRUST_CERTIFICATES.add(certificate);
}
.....
Если использовать AbstractCertificateChainBuilder нежелтельно, то как можно сделать по-другому?
Отредактировано пользователем 4 июня 2020 г. 9:58:25(UTC)
| Причина: Не указана