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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline eltsov_da  
#1 Оставлено : 1 ноября 2024 г. 16:14:55(UTC)
eltsov_da

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

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

Здравствуйте.
Подскажите пожалуйста возможно ли настроить JCP с Java 11 так, чтобы готовые приложения видели провайдер ru.CryptoPro.JCP.JCP?

Установлено JRE 11. Развернуто JCP jcp-2.0.41940-A.zip
В /etc/java-11-openjdk/security/java.security

security.provider.1=SUN
security.provider.2=SunRsaSign
security.provider.3=SunEC
security.provider.4=SunJSSE
security.provider.5=SunJCE
security.provider.6=SunJGSS
security.provider.7=SunSASL
security.provider.8=XMLDSig
security.provider.9=SunPCSC
security.provider.10=JdkLDAP
security.provider.11=JdkSASL
security.provider.12=SunPKCS11
security.provider.13=ru.CryptoPro.JCP.JCP
security.provider.14=ru.CryptoPro.reprov.RevCheck
security.provider.15=ru.CryptoPro.Crypto.CryptoProvider

в /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/

запустил configure.sh из папки JCP

В папку /var/opt/cprocsp/keys/root
положил папку с ключами
root@app1:/var/opt/cprocsp/keys/root/o7jok63u.000# ls
header.key masks2.key masks.key name.key primary2.key primary.key

Все запускаю из под root

Вот такой тест проходит:

root@app1:/etc/profile.d# java ComLine.CheckConfFull
нояб. 01, 2024 3:32:27 PM ComLine.CheckConfFull main
INFO:
JCP only: false
нояб. 01, 2024 3:32:27 PM ru.CryptoPro.ssl.Provider b
INFO: JCP license isServer: true
нояб. 01, 2024 3:32:27 PM ru.CryptoPro.ssl.Provider b
INFO: JCP license isServer: true
нояб. 01, 2024 3:32:27 PM ComLine.CheckConfFull checkProviders
INFO: Provider JCSP not installed
нояб. 01, 2024 3:32:27 PM ru.CryptoPro.JCP.tools.Starter <init>
INFO: Loading JCP 2.0.41940-A
нояб. 01, 2024 3:32:27 PM ru.CryptoPro.JCP.tools.Starter <init>
INFO: JCP has been loaded.
нояб. 01, 2024 3:32:28 PM ComLine.CheckConfFull deleteContainers
INFO: Prepare containers
нояб. 01, 2024 3:32:28 PM ComLine.CheckConfFull gen
INFO: Prepare containers
нояб. 01, 2024 3:32:28 PM ComLine.CheckConfFull gen
INFO: *** Check JCP key pair generation on GOST3410EL with signature algorithm GOST3411withGOST3410EL and writing to store
нояб. 01, 2024 3:32:28 PM ComLine.CheckConfFull keyGen
INFO: *** Generate key pair using algorithm GOST3410EL of provider JCP
Нажимайте Enter или введите ESC для отмены
^Croot@app1:/etc/profile.d#
root@app1:/etc/profile.d#

root@app1:/etc/profile.d# java ru.CryptoPro.JCP.tools.License
Проверка лицензии:
Тип: Серверная, подпись и шифрование
Допустимое число ядер: Неограниченное
Серийный номер: CF20X-X0030-00BAA-1F
Время действия: До 29 янв. 2025 г.
Действительная лицензия.


А keytool ругается.


root@app1:/etc/profile.d# keytool -list -providername ru.CryptoPro.JCP.JCP -storetype HDImageStore -keystore NONE -storepass 1
keytool error: java.security.NoSuchProviderException: no such provider: ru.CryptoPro.JCP.JCP


И аналогично ругается прикладной софт.

Caused by: ru.voskhod.crypto.exceptions.ProviderCreationException: ru.CryptoPro.JCP.JCP
at ru.voskhod.crypto.util.crypto.CryptoUtil.loadProvider(CryptoUtil.java:118)
at ru.voskhod.crypto.factory.provider.jcp.JCPKeyStoreProviderWrapper.getProvider(JCPKeyStoreProviderWrapper.java:26)
at ru.voskhod.crypto.util.crypto.CryptoUtil.getProvider(CryptoUtil.java:46)
... 92 common frames omitted
Caused by: java.lang.ClassNotFoundException: ru.CryptoPro.JCP.JCP
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at ru.voskhod.crypto.util.crypto.CryptoUtil.loadProvider(CryptoUtil.java:114)



Это готовый продукт, я не могу изменить его код.

На Java 8 все работало. Но необходимо запуститься на Java 11.

Заранее благодарен
Offline Евгений Афанасьев  
#2 Оставлено : 1 ноября 2024 г. 16:19:08(UTC)
Евгений Афанасьев

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

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

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

security.provider.13=ru.CryptoPro.JCP.JCP
security.provider.14=ru.CryptoPro.reprov.RevCheck
security.provider.15=ru.CryptoPro.Crypto.CryptoProvider

запишите как
Цитата:

security.provider.13=JCP
security.provider.14=RevCheck
security.provider.15=Crypto
Offline eltsov_da  
#3 Оставлено : 1 ноября 2024 г. 17:06:41(UTC)
eltsov_da

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

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

Поправил.
На вид ничего не изменилось

Caused by: ru.voskhod.crypto.exceptions.ProviderCreationException: ru.CryptoPro.JCP.JCP
at ru.voskhod.crypto.util.crypto.CryptoUtil.loadProvider(CryptoUtil.java:118)
at ru.voskhod.crypto.factory.provider.jcp.JCPKeyStoreProviderWrapper.getProvider(JCPKeyStoreProviderWrapper.java:26)
at ru.voskhod.crypto.util.crypto.CryptoUtil.getProvider(CryptoUtil.java:46)
... 94 common frames omitted
Caused by: java.lang.ClassNotFoundException: ru.CryptoPro.JCP.JCP
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at ru.voskhod.crypto.util.crypto.CryptoUtil.loadProvider(CryptoUtil.java:114)
... 96 common frames omitted
01-11-2024 16:55:38.041 [http-nio-8085-exec-1] INFO r.r.s.a.i.i.i.l.SettingsBasedHandlerLoader - ServletRequestHandledEvent: url=[/rs/crypto/validation/signer]; cl$


root@app1:/user/sa/logs# keytool -list -providername JCP -storetype HDImageStore -keystore NONE -storepass 1 keytool error: java.security.NoSuchProviderException: no such provider: JCP
root@app1:/user/sa/logs# keytool -list -providername ru.CryptoPro.JCP.JCP -storetype HDImageStore -keystore NONE -storepass 1 keytool error: java.security.NoSuchProviderException: no such provider: ru.CryptoPro.JCP.JCP
Offline Евгений Афанасьев  
#4 Оставлено : 1 ноября 2024 г. 17:59:43(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 705 раз в 666 постах
Команды keytool тоже могут отличаться для Java 8 и 11+, посмотрите в рук-вах администратора и разработчика в дистрибутиве в папке Doc. Там же есть примеры (bat, sh) с командами в папке Doc/keytool.
Offline eltsov_da  
#5 Оставлено : 1 ноября 2024 г. 22:31:35(UTC)
eltsov_da

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

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

Ну параметры keytool я подобрал.
Но записи в /etc/java-11-openjdk/security/java.security вообще никак не влияют.

root@app1:/etc/java-11-openjdk/security# keytool -list -J-Dkeytool.compat=true -J-Duse.cert.stub=true -providerpath xxx -providerClass ru.CryptoPro.JCP.JCP -storetype HDImageStore -keystore NONE -storepass 1
нояб. 01, 2024 10:15:47 PM ru.CryptoPro.JCP.tools.Starter <init>
INFO: Loading JCP 2.0.41940-A
нояб. 01, 2024 10:15:47 PM ru.CryptoPro.JCP.tools.Starter <init>
INFO: JCP has been loaded.
Keystore type: HDIMAGESTORE
Keystore provider: JCP

Your keystore contains 2 entries

jcptestsignkey_2001, 1 нояб. 2024 г., PrivateKeyEntry,
Certificate fingerprint (SHA-256): FE:A0:6F:AE:48:52:B4:7B:20:08:DF:70:69:8B:4B:D6:AA:B3:2D:F3:A0:FA:25:9D:C2:24:5C:73:12:35:CE:EA
o7jok63u, 1 нояб. 2024 г., PrivateKeyEntry,
Certificate fingerprint (SHA-256): F2:D2:69:98:EE:47:49:4E:79:52:CF:B8:2B:20:92:B0:77:97:5F:D8:28:8B:BB:EB:E1:AC:80:A8:21:12:1A:91

При этом в -providerpath можно вписать любые буквы, но без него не работает.

Но все это не помогает решить проблему с прикладным софтом. Он как не видел провайдера так и не видит.
Я не понимаю как прикладной софт ищет провайдер? Чисто по classpath?
Offline Санчир Момолдаев  
#6 Оставлено : 17 ноября 2024 г. 17:42:04(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 100 раз
Поблагодарили: 275 раз в 255 постах
Цитата:
Чисто по classpath

да.
Техническую поддержку оказываем тут
Наша база знаний
Offline eltsov_da  
#7 Оставлено : 18 ноября 2024 г. 11:14:22(UTC)
eltsov_da

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

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

Ну вот к сожалению, с Java 8 все работает сразу.
А с Java 11 не понятно, чего хочет
Offline Евгений Афанасьев  
#8 Оставлено : 18 ноября 2024 г. 11:51:19(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 705 раз в 666 постах
Автор: eltsov_da Перейти к цитате
-providerpath xxx

Что находится в xxx?
Так запускали в рабочей папке с распакованным дистрибутивом в *nix (здесь разделитель ":", в Windows разделитель - ";")
Автор: eltsov_da Перейти к цитате

keytool -J-Dkeytool.compat=true -providerpath ./JCP.jar:./ASN1P.jar:./asn1rt.jar:./forms_rt.jar -list -provider ru.CryptoPro.JCP.JCP -storetype HDImageStore -keystore NONE -storepass 1

?

Отредактировано пользователем 18 ноября 2024 г. 11:51:51(UTC)  | Причина: Не указана

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