Статус: Участник
Группы: Участники
Зарегистрирован: 12.04.2020(UTC) Сообщений: 13  Откуда: Москва Сказал(а) «Спасибо»: 6 раз
|
Добрый день! Есть сторонний сертификат в виде файла *.cer Задача: получить в коде этот сертификат в X509Certificate. Вариант с чтением напрямую из этого файла не подходит. Необходимо получить файл из хранилища. Команда certmgr -list выводит список сертификатов, в котором есть нужный мне: Код:
5-------
Издатель : ОГРН=1027739443236, STREET="Орликов переулок, д. 3, корп.
А", ИНН=007736056647, C=RU, L=г. Москва, S=77 Москва, E=info-uc@fss.ru, O=Фонд с
оциального страхования Российской Федерации, OU=Центральный аппарат, CN=Фонд соц
иального страхования Российской Федерации
Субъект : ИНН=007736056647, ОГРН=1027739443236, OU=Центральный аппар
ат, O=Фонд социального страхования Российской Федерации, STREET="Орликов переуло
к, д. 3, корп. А", L=г. Москва, S=77 Москва, C=RU, CN=Фонд социального страхован
ия Российской Федерации
Серийный номер : 0x01D57844C84211A00000014703E80002
Хэш SHA1 : 01571b540fca6c31c170f9e19c21ab718e52cf6d
Идентификатор ключа : 0af2cd6da374833c85663225fd7688f4a7379891
Алгоритм подписи : ГОСТ Р 34.11-2012/34.10-2012 256 бит
Алгоритм откр. кл. : ГОСТ Р 34.10-2012 256 бит (512 бит)
Выдан : 01/10/2019 10:43:00 UTC
Истекает : 01/01/2021 10:43:00 UTC
Ссылка на ключ : Нет
URL сертификата УЦ : http://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint
=B62304B154B965991F02D498A3E27C83F12A5FC3
URL списка отзыва : http://fss.ru/uc/GUC_FSS_RF_2019.crl
Назначение/EKU : 1.3.6.1.5.5.7.3.2 Проверка подлинности клиента
1.3.6.1.5.5.7.3.4 Защищенная электронная почта
=============================================================================
Следовательно этот сертификат есть в хранилище. Вот так успешно получаю его в Windows: Код:
KeyStore keyStore = KeyStore.getInstance("Windows-MY");
keyStore.load(null, null);
Enumeration<String> aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
X509Certificate cert = (X509Certificate) keyStore.getCertificate(alias);
if (cert != null) {
String val = cert.getSerialNumber().toString(16);
if (val.equalsIgnoreCase(fssSerialID)) {
System.out.println("Serial number: " + val);
}
}
}
По понятным причинам в Linux такой способ с "Windows-MY" не сработает. Вопрос: как получить этот сертификат из хранилища в системе Linux?Из того, до чего успел дойти сам: предполагаю, что нужно в keyStore.load(null, null) вместо первого null передавать поток ввода, из которого загружается хранилище ключей. Но откуда получить этот поток ввода? Где может находиться хранилище ключей? Возможно есть команды в certmgr или csptest, которые предоставят информацию о хранилище, где лежит нужный мне сертификат, но мне их не удалось найти. В Linux также этот сертификат виден через certmgr -list.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
В линуксе, в данный момент нет возможности считать сертификаты именно из хранилища CSP. В будущих версиях добавим такую возможность. |
|
 1 пользователь поблагодарил Анатолий Беляев за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.04.2020(UTC) Сообщений: 13  Откуда: Москва Сказал(а) «Спасибо»: 6 раз
|
Автор: Анатолий Беляев  В линуксе, в данный момент нет возможности считать сертификаты именно из хранилища CSP. В будущих версиях добавим такую возможность. А возможны ли в таком случае иные варианты получить сертификат, не прописывая в коде (в методе KeyStore.load) путь к хранилищу? Возможно через CertStore в JCP? Хотя я пробовал создать хранилище в CertStore, но в коде также приходится прописывать путь к файлу .certstore
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close