Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline AtagaN  
#1 Оставлено : 30 января 2019 г. 18:26:57(UTC)
AtagaN

Статус: Новичок

Группы: Участники
Зарегистрирован: 24.01.2019(UTC)
Сообщений: 2

Добрый день! Прошу помощь.

При создании CAdES-BES подписи вылетает ошибка

Код:

Error building certification path for ...
 unable to find valid certification path to requested target (33)



код взят из примера samples-sources/CAdES/SignExample :



Код:

// Получаем цепочку сертификатов. 
List<Certificate> lChain = 
	Arrays.asList(keyStore.getCertificateChain(alias));
	
// Конвертируем цепочку в X509Certificate.
Collection<X509Certificate> xChain = 
	Arrays.asList((lChain).toArray(new X509Certificate[lChain.size()]));
		
chain.addAll(xChain);



cadesSignature.addSigner(config.getProviderName(),
            config.getDigestOid(),
            config.getPublicKeyOid(),
            config.getPrivateKey(),
            config.getChain(),
            CAdESType.CAdES_BES,
            null, false,
            config.getSignedAttributes(),
            config.getUnsignedAttributes());



Сертификаты получаем из keyStore

Отредактировано пользователем 30 января 2019 г. 18:57:36(UTC)  | Причина: Не указана

Online Евгений Афанасьев  
#2 Оставлено : 30 января 2019 г. 20:36:24(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,087
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 22 раз
Поблагодарили: 747 раз в 704 постах
Здравствуйте.
Корневой сертификат добавили в cacerts? Нужно собрать лог (JCPLogger с уровнем FINE).
Offline AtagaN  
#3 Оставлено : 31 января 2019 г. 12:53:37(UTC)
AtagaN

Статус: Новичок

Группы: Участники
Зарегистрирован: 24.01.2019(UTC)
Сообщений: 2

Да, подпись сформировалась, но возникла новая проблема при проверке этой подписи сервисом https://www.justsign.me/verifyqca/Verify/

Не удалось проверить подпись CAdES-BES. Ошибка: [Элемент не найден]. Код: [0x80070490].Сертификат, на ключе которого было подписано сообщение, не найден.

При проверке подписи (CMS) нельзя загрузить сам сертификат. То есть нельзя проверить подпись?

вот информация о сертификате ./certmgr -list

Код:

Signature Algorithm : ГОСТ Р 34.11-2012/34.10-2012 256 бит
PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits)
Not valid before    : 27/11/2018  08:35:07 UTC
Not valid after     : 27/11/2019  08:45:07 UTC
PrivateKey Link     : Yes
Container           : HDIMAGE\\20190130.000\60C1
Provider Name       : Crypto-Pro GOST R 34.10-2012 KC1 CSP
Provider Info       : ProvType: 80, KeySpec: 1, Flags: 0x0
OCSP URL            : http://qs.cryptopro.ru/ocsp2012/ocsp.srf
CA cert URL         : http://cdp.cryptopro.ru/ra/aia/428832d0a383eff42f249553c0f4ee891c659f4e.crt
CA cert URL         : http://q20.cryptopro.ru/aia/428832d0a383eff42f249553c0f4ee891c659f4e.crt
CDP                 : http://cdp.cryptopro.ru/ra/cdp/428832d0a383eff42f249553c0f4ee891c659f4e.crl
CDP                 : http://q20.cryptopro.ru/cdp/428832d0a383eff42f249553c0f4ee891c659f4e.crl


вот код, которым создается подпись
Код:

   CAdESSignature cadesSignature = new CAdESSignature(config.detached());

        cadesSignature.setCertificateStore(config.getCertificateStore());
        cadesSignature.setCRLStore(config.getCRLStore());

        // Создаем подписанта CAdES-BES.
        cadesSignature.addSigner(config.getProviderName(),
            config.getDigestOid(),
            "1.2.643.7.1.1.6.1",
            config.getPrivateKey(),
            config.getChain(),
            CAdESType.CAdES_BES,
            null, false,
            config.getSignedAttributes(),
            config.getUnsignedAttributes());

Отредактировано пользователем 31 января 2019 г. 13:48:03(UTC)  | Причина: Не указана

Online Евгений Афанасьев  
#4 Оставлено : 31 января 2019 г. 14:23:30(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,087
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 22 раз
Поблагодарили: 747 раз в 704 постах
Используйте setCertificateStore у объекта CAdESSignature для добавления сертификата подписи в подпись. Описание функции есть в CAdES-javadoc.jar в дистрибутиве JCP. По умолчанию CADES-BES создается без сертификата.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.