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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline hrensgory  
#1 Оставлено : 11 марта 2025 г. 20:14:00(UTC)
hrensgory

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

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

Сказал «Спасибо»: 2 раз
Поблагодарили: 1 раз в 1 постах
Добрый день, при попытке получения закрытого ключа (используется JCSP 5.0 R3) ловим странную ошибку.

Caused by: java.lang.NullPointerException: invalid null input for certificate chain
at ru.CryptoPro.JCP.KeyStore.JCPPrivateKeyEntry.<init>(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.JCPPrivateKeyEntry.<init>(Unknown Source)
at ru.CryptoPro.JCP.KeyStore.JCPPrivateKeyEntry.<init>(Unknown Source)
at ru.CryptoPro.JCSP.KeyStore.CSPStore.engineGetEntry(Unknown Source)
at ru.CryptoPro.JCSP.KeyStore.MetaCSPStore.engineGetEntry(Unknown Source)
at java.base/java.security.KeyStore.getEntry(KeyStore.java:1549)

Есть сертификат вполне валидный, выдан официальным УЦ (Минцифры -> Казначейство), certmgr показывает и его и связь с закрытым ключом.

В чём может быть причина?
Offline Евгений Афанасьев  
#2 Оставлено : 13 марта 2025 г. 14:48:32(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 718 раз в 678 постах
Добрый день.

Вероятно, в контейнере отсутствует сертификат, а вызов getEntry делается так, что не допускает подобной ситуации:
Код:

JCPProtectionParameter parameter = new JCPProtectionParameter(password);
JCPPrivateKeyEntry entry = (JCPPrivateKeyEntry) keyStore.getEntry(alias, parameter);

У JCPProtectionParameter есть дополнительные параметры, позволяющие получить ключ, даже если нет сертификата:
Код:

JCPProtectionParameter parameter = new JCPProtectionParameter(password, true, true);
JCPPrivateKeyEntry entry = (JCPPrivateKeyEntry) keyStore.getEntry(alias, parameter);


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