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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Алексей Вдовин  
#1 Оставлено : 27 января 2025 г. 10:47:31(UTC)
Алексей Вдовин

Статус: Активный участник

Группы: Участники
Зарегистрирован: 28.12.2021(UTC)
Сообщений: 261
Российская Федерация
Откуда: Новосибирск

Сказал(а) «Спасибо»: 78 раз
Поблагодарили: 1 раз в 1 постах
при попытке подписать JCP тестовым сертификатом получаю ошибку

Цитата:

Error occurred during building the certification path for the target:
serial: 120067131348d71c3c48a5edf4000200671313
subject: ....
issuer: CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, EMAILADDRESS=support@cryptopro.ru
not before: Wed Dec 25 21:35:49 NOVT 2024
not after: Tue Feb 25 21:45:49 NOVT 2025
signature provider: JCP
validation date: null
native implementation: true
: unable to find valid certification path to requested target



дебаг показывает, что вылетает на добавлении подписанта cadesSignature.addSigner(...)
Код:

        KeyStore keyStore = KeyStore.getInstance(certKeyStore, "JCP");
        keyStore.load(null, null);

        PrivateKey privateKey = (PrivateKey) keyStore.getKey(alias, password);
        List<java.security.cert.Certificate> lChain = Arrays.asList(keyStore.getCertificateChain(alias));
        CAdESSignature cadesSignature = new CAdESSignature(isDetached);

        Collection<X509CertificateHolder> certificateHolders = new ArrayList<>();
        certificateHolders.add(new X509CertificateHolder(keyStore.getCertificate(alias).getEncoded()));
        CollectionStore<X509CertificateHolder> store = new CollectionStore<>(certificateHolders);
        cadesSignature.setCertificateStore(store);

        cadesSignature.addSigner(
                JCP.PROVIDER_NAME,
                JCP.GOST_DIGEST_OID,
                JCP.GOST_EL_KEY_OID,
                privateKey,
                lChain,
                CAdESType.CAdES_BES,
                null,
                false
        );




я так понимаю либо сам сертификат найти не может, либо проблема с цепочкой, но как точно диагностировать в чём проблема не пойму

предварительно скачал вот эти сертификаты
http://testca2012.cryptopro.ru/cert/rootca.cer
http://testca2012.cryptopro.ru/cert/subca.cer

и установил в cacerts

Цитата:

JAVA_HOME="/home/alex/.jdks/corretto-21.0.5"
keytool -import -trustcacerts -keystore "$JAVA_HOME/lib/security/cacerts" -alias testrootca -file ./testca/rootca.cer
keytool -import -trustcacerts -keystore "$JAVA_HOME/lib/security/cacerts" -alias testsubca -file ./testca/subca.cer


в GUI посмотрел данные сертификата - там в цепочке только сам сертификат и сертификат издателя CRYPTO-PRO Test Center 2


в cacerts добавленные альясы присутствуют

Код:

keytool -list -keystore /home/alex/.jdks/corretto-21.0.5/lib/security/cacerts | grep test


Цитата:

testrootca, 27 янв. 2025 г., trustedCertEntry,
testsubca, 27 янв. 2025 г., trustedCertEntry,



PS
сами ключ рабочий - c GUI подпись создаётся

Отредактировано пользователем 27 января 2025 г. 11:08:19(UTC)  | Причина: Не указана

Wanna join the discussion?! Login to your Форум КриптоПро forum account. Новые регистрации запрещены.

Offline Алексей Вдовин  
#2 Оставлено : 27 января 2025 г. 12:07:54(UTC)
Алексей Вдовин

Статус: Активный участник

Группы: Участники
Зарегистрирован: 28.12.2021(UTC)
Сообщений: 261
Российская Федерация
Откуда: Новосибирск

Сказал(а) «Спасибо»: 78 раз
Поблагодарили: 1 раз в 1 постах
я так понял ещё нужен сам сертификат ЦС и цепочка

https://www.cryptopro.ru/certsrv/certcarc.asp

качнул отсюда certnew.cer и certnew.p7b

certnew.cer в cacerts импортировал, а вот certnew.p7b не хочет
"keytool error: java.lang.Exception: Input not an X.509 certificate"
Offline Алексей Вдовин  
#3 Оставлено : 27 января 2025 г. 12:35:37(UTC)
Алексей Вдовин

Статус: Активный участник

Группы: Участники
Зарегистрирован: 28.12.2021(UTC)
Сообщений: 261
Российская Федерация
Откуда: Новосибирск

Сказал(а) «Спасибо»: 78 раз
Поблагодарили: 1 раз в 1 постах
млин ... комп ребутнул и заработало :(

похоже после телодвижений с keytool надо какие то службы рестартить ?! (работаю в Ubunu)

PS
вернул всё обратно и проверил ещё раз - достаточно полностью остановить приложение и запустить заново (я делал restart debug), после чего приложение использует актуальное состояние keystore

итого, вопрос решился добавлением сертификата тестового УЦ (цепочка похоже не нужна, т.к. я её так и не смог импортировать)

Отредактировано пользователем 27 января 2025 г. 12:56:12(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 30 января 2025 г. 0:45:18(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 725 раз в 684 постах
Добрый день.
Корневые сертификаты должны быть установлены в cacerts. Изменение cacerts требует перезапуска приложения (что вы и сделали).
Если предполагается, что cacerts может обновляться в процессе работы приложения, то после изменения cacerts в приложении можно использовать функцию CAdESSignature#reloadCACerts: хранилище cacerts будет перечитано.
thanks 2 пользователей поблагодарили Евгений Афанасьев за этот пост.
Алексей Вдовин оставлено 30.01.2025(UTC), dbubb оставлено 03.02.2025(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.