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

Уведомление

Icon
Error

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

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

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

Сказал(а) «Спасибо»: 75 раз
Поблагодарили: 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)  | Причина: Не указана

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

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

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

Сказал(а) «Спасибо»: 75 раз
Поблагодарили: 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)
Сообщений: 248
Российская Федерация
Откуда: Новосибирск

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

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

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

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

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

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.