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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline itechno  
#1 Оставлено : 14 мая 2016 г. 10:19:53(UTC)
itechno

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

Группы: Участники
Зарегистрирован: 03.05.2016(UTC)
Сообщений: 24

Что есть:
1) Установлено КриптоПро CSP 3.9.8001 KC2
2) Установлено КриптоПро JCP (jcp-2.0.38674) на JDK8_60\JRE (jre внутри JDK8_60). В само JDK8_60(а не в JDK8_60\JRE) JCP ставится не хочет - выдает ошибки (да и в списке предлагаемых установок его нет). Попытки тупо скопировать jar-библиотеки JCP не дают желаемого результата!
3) Отлично работающее тестовой клиентское приложение(public static void main(String[] args){}) под JDK8_60\JRE\JCSP(jcp-2.0.38674) - авторизация по сертификату + подпись soap сообщения по Госту(ГИС ЖКХ).

Что нужно:
1) В связи с тем, что используются Spring, Hibernate и т.д. возникла необходимость перенести это на JBoss7.
Для запуска JBoss7 нужна именно JDK, а не JDK\JRE или просто JRE. Приложение диплоится на JBoss7 без ошибок. При
вызове ru.CryptoPro.CAdES.tools.Utility.initJCPAlgorithms()(авторизация) или JCPXMLDSigInit.init()(подпись) получаю ошибку времени выполнения:

09:45:39,639 ERROR [org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler] (gisGkhScheduler-1) Unexpected error occurred in scheduled task.: java.lang.NoClassDefFoundError: ru/CryptoPro/CAdES/tools/Utility
at kmh.gis.gkh.util.SSLSocketFactoryGisGkh.getInstance(SSLSocketFactoryGisGkh.java:70) [classes:]
at kmh.gis.gkh.soap.controller.ReplicationControllerAll.replicateAll(ReplicationControllerAll.java:43) [classes:]
at kmh.gis.gkh.scheduler.SchedulerForReplication.processReplication(SchedulerForReplication.java:55) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_60]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_60]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_60]
at java.lang.reflect.Method.invoke(Method.java:497) [rt.jar:1.8.0_60]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65) [spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-4.1.4.RELEASE.jar:4.1.4.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_60]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [rt.jar:1.8.0_60]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [rt.jar:1.8.0_60]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [rt.jar:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_60]

Библиотеки jcp-2.0.38674 приложил куда только смог - в само приложение и в JBoss, прописывал пути jar-файлов в java_class конфигурации запуска JBoss. НЕ ПОМОГЛО.

Похоже что JDK8 и как следствие JBoss7 в упор не видит установленной JCP.
Но в саму JDK8 (не JDK8\JRE) ставить JCP не получается!

Вопрос (в основном к сотрудникам КриптоПро):
1) Как решить проблему работы JCP/JCSP на JDK?
2) Есть ли какая-то серверная версия JCP\JCSP под JDK8?! (мы купим).
Offline Евгений Афанасьев  
#2 Оставлено : 14 мая 2016 г. 13:00:44(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Здравствуйте.
Не совсем понятно, куда именно в JDK вы хотите установить jcp. ext - это папка расширений, куда и ставится jcp, дополняющий своей функциональностью jre (стандартная процедура установки, описанная в руководстве администратора). Просто скопировать jcp не выйдет. Вероятно, есть какие-то особенности работы загрузчика(-ов) библиотек jboss.
Кроме того, если вы повсюду скопировали, например, CAdES.jar, то его jboss должен видеть, т.к., например, эта библиотека в отличие от библиотек провайдера (jcp, jcryptop, jcsp) может быть скопирована отдельно; по идее, библиотека CAdES должна быть загружена, но будет получена ошибка - не найден класс jcp или алгоритм и т.п. (если не виден провайдер в ext).

Отредактировано пользователем 14 мая 2016 г. 13:02:04(UTC)  | Причина: Не указана

Offline itechno  
#3 Оставлено : 14 мая 2016 г. 15:26:29(UTC)
itechno

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

Группы: Участники
Зарегистрирован: 03.05.2016(UTC)
Сообщений: 24

Проблема в том, что JCP дополняет JRE, а JBoss использует JDK, которое почему-то не видит JCP в JRE, физически находящееся в JDK.
Попробую еще покопать JBoss+Приложение.
Offline itechno  
#4 Оставлено : 16 мая 2016 г. 11:07:11(UTC)
itechno

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

Группы: Участники
Зарегистрирован: 03.05.2016(UTC)
Сообщений: 24

1) От безисходности залез внутрь jar-файлов jcp-2.0.38674 (CAdES.jar, JCSP.zip) смотрю META-INF\MANIFEST.MF

Вижу:
Manifest-Version: 1.0
Build-TimeStamp: 2016-02-15T13:18:28Z
Implementation-Title: JCSP
Implementation-Version: 38674
Built-By: root
Created-By: Apache Maven 3.2.3
Release-Version: 2.0.38674
Implementation-Vendor: ООО «КРИПТО-ПРО»
Implementation-Vendor-Id: ru.CryptoPro
Build-Jdk: 1.6.0_45
Specification-Version: 4.0
Main-Class: ru.CryptoPro.JCSP.ManifestInstall
Archiver-Version: Plexus Archiver

т.е. jar файлы откомпилированы под Jdk: 1.6.0_45 - скорее всего поэтому с JBoss7 под JDK7 b JDK8 их не видит.

Запустить JBoss7 под Jdk: 1.6.0_45 пока не получается - перестает работать Spring4.

2) Еще один момент - Сделал EAR (вместо WAR) для диплоинга на Jboss7. В Eclipse сделал библиотеку JCP+зависимости (все в одной директории), сказал проекту собирать и диплоить вместе с этой библиотекой.
Посмотрел на сервере что получилось - зависимости пошли в EAR\lib, а jar файлы JCP - в корень EAR! JDK8 не понимает эти файлы как библиотеки!!!

Brick wall Как заставить работать JCP под JBoss7(JDK7 или JDK8)?
Offline Евгений Афанасьев  
#5 Оставлено : 16 мая 2016 г. 11:23:14(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Сделайте консольный пример с main (не в jboss) с хешированием или чем-то подобным, например:
Код:

MessageDigest md = MessageDigest.getInstance(JCP.GOST_DIGEST_NAME, JCP.PROVIDER_NAME);
byte[] result = md.digest("test".getBytes());

скомпилируйте его и выполните в java 8 в командной строке:
<java8>/bin/java my.test.class
- он должен работать, т.к. у java8 есть обратная совместимость.
Если вы кладете JCP в зависимости приложения (что нельзя делать, например, для jcp.jar, jcryptop.jar, jcsp.jar), то куда они попадут - сложно сказать, если библиотеки собраны для jdk 6 и выше, а вы собираете приложение в jdk 8.
Offline itechno  
#6 Оставлено : 16 мая 2016 г. 11:34:20(UTC)
itechno

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

Группы: Участники
Зарегистрирован: 03.05.2016(UTC)
Сообщений: 24

JDK1.8_60\jre:
public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException {
// TODO Auto-generated method stub
System.out.println("Test1");
MessageDigest md = MessageDigest.getInstance(JCP.GOST_DIGEST_NAME, JCP.PROVIDER_NAME);
byte[] result = md.digest("test".getBytes());
}

Работает (настроена на JCSP):
Test1
мая 16, 2016 11:04:26 AM ru.CryptoPro.JCSP.JCSP <init>
INFO: Loading JCSP 4.0 38674
мая 16, 2016 11:04:26 AM ru.CryptoPro.JCSP.KeyStore.KeyStoreConfig enumInstalledProviders
WARNING: No provider with type of 80 found.
мая 16, 2016 11:04:26 AM ru.CryptoPro.JCSP.KeyStore.KeyStoreConfig enumInstalledProviders
WARNING: No provider with type of 81 found.
мая 16, 2016 11:04:26 AM ru.CryptoPro.JCSP.JCSP <init>
INFO: JCSP loaded.

Отредактировано пользователем 16 мая 2016 г. 11:49:13(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#7 Оставлено : 16 мая 2016 г. 11:37:23(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Посмотрите тут, тут, может, поможет.

Отредактировано пользователем 16 мая 2016 г. 11:38:40(UTC)  | Причина: Не указана

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