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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Алексей Черенцов  
#1 Оставлено : 19 марта 2020 г. 11:34:14(UTC)
Алексей Черенцов

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

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

Сказал(а) «Спасибо»: 14 раз
Здравствуйте. Есть проект на linux на стеке технологий SpringBoot, OpenJDK11, JCP 5.0.40621-A. Проект запускается и корректно работает как из среды разработки (IDEA) так и с jar-ника.
Пытаюсь настроить проект в docker'е (ранее на OpenJDK8 + jcp-2.0.40424 в контейнере всё работало). DockerfileLocal:

Код:
FROM azul/zulu-openjdk:11

ENV JAVA_HOME=/usr/lib/jvm/zulu-11-amd64/
ENV JAVA_JRE=/usr/lib/jvm/zulu-11-amd64/
ENV SPRING_PROFILES_ACTIVE=localstand

WORKDIR /auth
ADD ./local/docker/for_csp.tar.gz .

RUN mkdir ./local
RUN mkdir ./local/crl && mkdir ./local/cert && mkdir ./local/cert_participant
    
RUN dpkg -i ./for_csp/libwrap0_7.6.q-28_amd64.deb \
     && dpkg -i ./for_csp/libpcsclite1_1.8.10-1ubuntu1.1_amd64.deb \
     && dpkg -i ./for_csp/libusb-1.0-0_1.0.22-2_amd64.deb \
     && dpkg -i ./for_csp/libccid_1.4.15-1_amd64.deb \
     && dpkg -i ./for_csp/pcscd_1.8.10-1ubuntu1.1_amd64.deb
 
ADD ./target/auth-0.0.1.RELEASE.jar ./auth-0.0.1.RELEASE.jar
ADD ./target/JCP.jar /auth/dist/JCP.jar

RUN java -cp /auth/dist/JCP.jar ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/JCP -key HDImageStore_class_default -value /auth/local/keystore/
#CMD java -Dspring.profiles.active=localstand -Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n -jar ./auth-0.0.1.RELEASE.jar


Собираю:

Код:
sudo docker build --no-cache -t spring-auth-dev11 . -f=DockerfileLocal


Запускаю контейнер:

Код:
sudo docker run -it --privileged --volume=/home/cab/Project/auth/local/cert/:/auth/local/cert/ --volume=/home/cab/Project/auth/local/cert_participant/:/auth/local/cert_participant/ --volume=/home/cab/Project/auth/local/crl/:/auth/local/crl/ --volume=/home/cab/Project/auth/local/keystore/:/auth/local/keystore/ --publish=8081:8080 --rm=true --network=auth_app --name=spring-auth-dev11 spring-auth-dev11


Запускаю в контейнере:

Код:
java -Dspring.profiles.active=localstand -jar ./auth-0.0.1.RELEASE.jar


В коде java выполняется:

Код:
		
Security.addProvider(new ru.CryptoPro.JCP.JCP());
Security.addProvider(new RevCheck());
Security.addProvider(new ru.CryptoPro.Crypto.CryptoProvider());
final KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME);
keyStore.load(null, null);
System.out.println("keyStore.size(): " + keyStore.size());


На выходе в консоли вижу "keyStore.size() 0", хотя в /auth/local/keystore/ лежит с десяток папок с ключами. Если зайти в контейнере в (ранее сформированный командой ru.CryptoPro.JCP.Util.SetPrefs из докерфайла) файл /etc/.java/.systemPrefs/ru/CryptoPro/JCP/prefs.xml то там всё заполненно корректно:
Код:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE map SYSTEM "http://java.sun.com/dtd/preferences.dtd">
<map MAP_XML_VERSION="1.0">
  <entry key="HDImageStore_class_default" value="/auth/local/keystore/"/>
</map>


Не подскажите, в чём может быть проблема? Почему в контейнер на версиях OpenJDK11 и JCP 5.0.40621 программа перестаёт видеть переадресованный HDImageStore, а вне контейнера или на OpenJDK8 + jcp-2.0.40424 видит ключи в переадресованном HDImageStore корректно?
Offline Санчир Момолдаев  
#2 Оставлено : 19 марта 2020 г. 11:47:05(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 226 раз в 213 постах
Добрый день!
попробуйте
Код:
HDImageStore.setDir(String pathHD)

по умолчанию hdimage находится по пути /var/opt/cprocsp/keys/$USER/
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
Алексей Черенцов оставлено 19.03.2020(UTC)
Offline Алексей Черенцов  
#3 Оставлено : 19 марта 2020 г. 12:11:21(UTC)
Алексей Черенцов

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

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

Сказал(а) «Спасибо»: 14 раз
Аллилуйя! Действительно удалось перенаправить путь к HDImageStore через команду HDImageStore.setDir(). На мой взгляд, эту фишку не лишне будет добавить в документацию. Вдруг ещё кто с такой задачей столкнётся.
Спасибо!
Offline Санчир Момолдаев  
#4 Оставлено : 19 марта 2020 г. 12:57:10(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 226 раз в 213 постах
Автор: Алексей Черенцов Перейти к цитате
Аллилуйя! Действительно удалось перенаправить путь к HDImageStore через команду HDImageStore.setDir(). На мой взгляд, эту фишку не лишне будет добавить в документацию. Вдруг ещё кто с такой задачей столкнётся.
Спасибо!

она есть в документации на JCP руководство программиста
Техническую поддержку оказываем тут
Наша база знаний
Offline Алексей Черенцов  
#5 Оставлено : 20 марта 2020 г. 4:29:52(UTC)
Алексей Черенцов

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

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

Сказал(а) «Спасибо»: 14 раз
Цитата:
она есть в документации на JCP руководство программиста


Странно. Вот я устанавливал в maven библиотеки JCP из пакета с самыми последнеми доступными изменениями - "java-csp-5.0.40621-A". В этом пакете в папке "doc" есть две папки "Java_CSP_KC1" и "Java_CSP_KC2". В обоих этих папках руководство программиста - это четыре файла "ЖТЯИ.00101-01 96 02. Руководство программиста. JavaCSP", "ЖТЯИ.00101-01 96 03. Руководство программиста. JavaTLS.pdf", "ЖТЯИ.00102-01 96 02. Руководство программиста. JavaCSP.pdf" и "ЖТЯИ.00102-01 96 03. Руководство программиста. JavaTLS.pdf". Поиск в этих файлах по слову "setDir" ничего не даёт.
При этом в старом августовском пакете jcp-2.0.40450-A в "ЖТЯИ.00091-03 33 01-02. Руководство программиста.pdf" метод setDir у HDImageStore описан. Но в свежем январском пакете "java-csp-5.0.40621-A" этой информации нет. Так что, на мой взгляд, не помешает добавить информацию о setDir в "руководство программиста JavaCSP" или включать в пакет "java-csp" ещё и "руководство программиста JCP"

Отредактировано пользователем 20 марта 2020 г. 4:58:27(UTC)  | Причина: Не указана

Offline Анатолий Беляев  
#6 Оставлено : 23 марта 2020 г. 17:25:46(UTC)
Анатолий Беляев

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Ну вы ставили дистрибутив Java CSP, он хоть и включает в себя JCP и может там функционировать, но вообще то это другой криптопровайдер. У них и документация разная.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.