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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline sevahx  
#1 Оставлено : 8 октября 2014 г. 15:10:01(UTC)
sevahx

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах
У меня есть сертификат и закрытые ключи для него. Я скопиравал папку с ключами в ${user.home}\Local Settings\Application Data\Crypto Pro , и в контрольной панели JCP появилось хранилище с ключом(без пароля), добавил в него сертификат, и затем скопировал его в хранилище сетрификатов. Получилась такая картина:
UserPostedImage

Сертификат загружается без проблем, но закрытый ключ все время null. Подскажите пожалуйста что я делаю не так? И верный ли я указываю алиас при получении закрытого ключа?

Код:
KeyStore keyStore = KeyStore.getInstance("HDImageStore", "JCP");
keyStore.load(new FileInputStream(new File("C:\\Users\\Администратор\\Documents\\CertStore")), PASSWORD);
X509Certificate cert = (X509Certificate)keyStore.getCertificate("Certificate");

PrivateKey privateKey = (PrivateKey)keyStore.getKey("Certificate", PASSWORD);

PrivateKey privateKey = (PrivateKey)keyStore.getKey("Certificate", null);

PrivateKey privateKey = (PrivateKey)keyStore.getKey(null, null);

//В любом случае privateKey = null


Спасибо.
Offline Евгений Афанасьев  
#2 Оставлено : 8 октября 2014 г. 15:26:03(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Здравствуйте.

Автор: sevahx Перейти к цитате
KeyStore keyStore = KeyStore.getInstance("HDImageStore", "JCP");
keyStore.load(new FileInputStream(new File("C:\\Users\\Администратор\\Documents\\CertStore")), PASSWORD);
X509Certificate cert = (X509Certificate)keyStore.getCertificate("Certificate");

PrivateKey privateKey = (PrivateKey)keyStore.getKey("Certificate", PASSWORD);

PrivateKey privateKey = (PrivateKey)keyStore.getKey("Certificate", null);

PrivateKey privateKey = (PrivateKey)keyStore.getKey(null, null);

//В любом случае privateKey = null


Во-первых, в keyStore вы грузите только хранилище сертификатов CertStore - в нем только ваш сертификат, который в приложенном скриншоте внизу. Из него вы можете сделать только getCertificate с алиасом Certificate.
Во-вторых, чтобы загрузить контейнеры, нужно вызвать
Код:

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

Тогда вы сможете с помощью getKey получить ключ по алиасу ГалушкинаНА, как он отображается в панели на скриншоте сверху. Аналогично с тем же алиасом можно получить сертификат, если вызвать getCertificate. Все описано в документации к JCP (руководство программиста).

Отредактировано пользователем 8 октября 2014 г. 15:27:14(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
sevahx оставлено 08.10.2014(UTC)
Offline sevahx  
#3 Оставлено : 8 октября 2014 г. 15:40:50(UTC)
sevahx

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах
Когда я делаю так:
Код:

KeyStore keyStore = KeyStore.getInstance("HDImageStore", "JCP");
keyStore.load(null, null);
PrivateKey privateKey = (PrivateKey)keyStore.getKey("ГалушкинаНА", null);
X509Certificate cert = (X509Certificate)keyStore.getCertificate("ГалушкинаНА");


То не получаю ни ключа ни сертификата. Более того если посмотреть список алиасов keyStore.aliases(), то он тоже оказывается пустым. Почему то не находится контейнер.
Offline sevahx  
#4 Оставлено : 8 октября 2014 г. 15:55:03(UTC)
sevahx

Статус: Участник

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

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 2 раз в 1 постах
Я разобрался, проблема была в том что я копировал папку с ключам в Админ\Local Settings\Application Data\Crypto Pro , и JCP при этом все прекрасно отображала, хотя я работал под другим пользователем(не Админом), и скопировав "нужный пользователь"\Local Settings\Application Data\Crypto Pro ключи туда, все заработало.

Спасибо за ответ)

Отредактировано пользователем 8 октября 2014 г. 15:55:39(UTC)  | Причина: Не указана

thanks 2 пользователей поблагодарили sevahx за этот пост.
sappo оставлено 21.07.2017(UTC), vadik0110 оставлено 22.11.2017(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.