logo Наши способы организации безопасного удалённого доступа к рабочим местам и корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Oleg Frolov  
#1 Оставлено : 21 мая 2020 г. 13:46:19(UTC)
Oleg Frolov

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

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

Сказал(а) «Спасибо»: 4 раз
Добрый день!

Есть сторонний сертификат в виде файла *.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.
Offline Анатолий Беляев  
#2 Оставлено : 22 мая 2020 г. 13:52:36(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 939
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 159 раз в 140 постах
В линуксе, в данный момент нет возможности считать сертификаты именно из хранилища CSP. В будущих версиях добавим такую возможность.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
thanks 1 пользователь поблагодарил Анатолий Беляев за этот пост.
Oleg Frolov оставлено 22.05.2020(UTC)
Offline Oleg Frolov  
#3 Оставлено : 22 мая 2020 г. 18:47:58(UTC)
Oleg Frolov

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

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

Сказал(а) «Спасибо»: 4 раз
Автор: Анатолий Беляев Перейти к цитате
В линуксе, в данный момент нет возможности считать сертификаты именно из хранилища CSP. В будущих версиях добавим такую возможность.


А возможны ли в таком случае иные варианты получить сертификат, не прописывая в коде (в методе KeyStore.load) путь к хранилищу?

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