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

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline Pavr  
#1 Оставлено : 16 июня 2012 г. 17:00:32(UTC)
Pavr

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

Группы: Участники
Зарегистрирован: 16.06.2012(UTC)
Сообщений: 14
Откуда: Moscow

Коллеги, помогите разобраться.
Есть веб-сервис, доступ к веб-серису осуществляется через прокси, который использует самоподписанный ГОСТ сертификат.
Что сделано:
1. Установил Крипто Про CSP.
2. При обращении к веб-сервису через браузер добавил в Windows сертификат в доверенные центры сертификации.
3. На .NET сделал клиента для веб-сервиса, все отлично работает.

НЕ получается сделать клиента для веб-сервиса на JAVA. java программы (soap UI, stylus studio) так же не могут вызвать веб-сервис.

Я подозреваю, что проблема в том, что java использует свое хранилище для доверенных сертификатов, а мой сертификат в него не добавлен.
Но добавить его туда НЕ получается.

Использую для импорта утилиту keytool IUI.

1. Сохранил сертификат из виндового хранилища в файл .crt.
2. При попытке добавить сертификат в хранилище c:\Program Files (x86)\Java\jre6\lib\security\cacerts сертификат не добавляется. При этом ошибок никаких не возникает.
3. При попытке открыть сертификат на просмотр в keytool IUI выдается ошибка

java.lang.ClassCastException: org.bouncycastle.crypto.params.ECPublicKeyParameters cannot be cast to org.bouncycastle.crypto.params.GOST3410PublicKeyParameters
at org.bouncycastle.crypto.signers.GOST3410Signer.init(Unknown Source)
at org.bouncycastle.jce.provider.JDKGOST3410Signer.engineInitVerify(Unknown Source)
at java.security.Signature.initVerify(Unknown Source)
at sun.security.x509.X509CertImpl.verify(Unknown Source)
at sun.security.x509.X509CertImpl.verify(Unknown Source)
at org.ragingcat.shared.util.jarsigner.UtilCrt.s_isSignedBy(UtilCrt.java:85)
at org.ragingcat.shared.util.jarsigner.UtilCrt.s_isSelfSigned(UtilCrt.java:65)
at org.ragingcat.kst.util.jarsigner.UtilKstAbs.s_getBoosSelfSigned(UtilKstAbs.java:1527)
at org.ragingcat.kst.util.jarsigner.UtilKstAbs._s_showKstOpen_(UtilKstAbs.java:2292)
at org.ragingcat.kst.util.jarsigner.UtilKstJks._s_showFile_(UtilKstJks.java:898)
at org.ragingcat.kst.util.jarsigner.UtilKstAll.s_showFile(UtilKstAll.java:217)
at org.ragingcat.kst.AppMainUIAbs.actionPerformed(AppMainUIAbs.java:95)
at org.ragingcat.kst.UIKeytool.actionPerformed(UIKeytool.java:932)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

1 ? ERROR (instance ID: 1)
. location: org.ragingcat.kst.UIKeytool.actionPerformed(evtAction)
. message: exc caught

Offline Евгений Афанасьев  
#2 Оставлено : 16 июня 2012 г. 17:59:54(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Здравствуйте.
Взаимодействие с сервисом должно осуществляться по защищенному каналу (TLS)?
Вы используете jtls?
Добавление в cacerts осуществляете утилитой keytool (встроенная утилита JRE)? Она должна сообщить об успешном добавлении либо вывести ошибку.
Keytool IUI использует библиотеки bouncycastle и может некорректно работать в данном случае.

Отредактировано пользователем 16 июня 2012 г. 18:04:46(UTC)  | Причина: Не указана

Offline Pavr  
#3 Оставлено : 18 июня 2012 г. 19:11:39(UTC)
Pavr

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

Группы: Участники
Зарегистрирован: 16.06.2012(UTC)
Сообщений: 14
Откуда: Moscow

Да, взаимодействие должно осуществляться по защищенному каналу. Причем канал должен быть защищен по ГОСТу.
Вопрос. Если у меня установлен КриптоПРО CSP, мне для работы из Java с сервисом защищенным ГОСТ шифрованием нужно ставить КриптоПро JCP или Jtls?

Keytool не пробовал использовать. Попробую.
Offline Евгений Афанасьев  
#4 Оставлено : 18 июня 2012 г. 20:23:55(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Да, нужно установить jcp и jtls в используемую jre. С помощью jtls вы сможете создать защищеннное соединение.
Offline Pavr  
#5 Оставлено : 18 июня 2012 г. 20:23:58(UTC)
Pavr

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

Группы: Участники
Зарегистрирован: 16.06.2012(UTC)
Сообщений: 14
Откуда: Moscow

Попробовал добавить сертификат утилитой keytool. Перед этим установил КРИПТОПРо JCP.

команда такая.
C:\Program Files\Java\jre6\bin>keytool -import -trustcacerts -file C:/temp/bank.cer -alias Bank -keystore $JAVA_HOME/jre/lib/security/cacerts

Ошибка - Ключ должен соответствовать алгоритму lde h 34.10-94.

18.06.2012 18:17:41 ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.53
18.06.2012 18:17:41 ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
18.06.2012 18:17:41 ru.CryptoPro.JCP.Sign.b engineInitVerify
WARNING: iЛ Ч ДОЛЖЕН СООТюЕТСТюОюАТд АЛГОРИТМУ lde h 34.10-94
java.security.InvalidKeyException: iЛ Ч ДОЛЖЕН СООТюЕТСТюОюАТд АЛГОРИТМУ lde h
34.10-94
at ru.CryptoPro.JCP.Sign.GostSign.a(Unknown Source)
at ru.CryptoPro.JCP.Sign.b.engineInitVerify(Unknown Source)
at java.security.Signature.initVerify(Unknown Source)
at sun.security.x509.X509CertImpl.verify(Unknown Source)
at sun.security.x509.X509CertImpl.verify(Unknown Source)
at sun.security.tools.KeyTool.addTrustedCert(Unknown Source)
at sun.security.tools.KeyTool.doCommands(Unknown Source)
at sun.security.tools.KeyTool.run(Unknown Source)
at sun.security.tools.KeyTool.main(Unknown Source)
keytool error: java.security.InvalidKeyException: iЛ Ч ДОЛЖЕН СООТюЕТСТюОюАТд АЛ
ГОРИТМУ lde h 34.10-94
Offline Евгений Афанасьев  
#6 Оставлено : 18 июня 2012 г. 20:48:39(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Вы не могли бы приложить сертификат?
Offline Pavr  
#7 Оставлено : 19 июня 2012 г. 12:01:38(UTC)
Pavr

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

Группы: Участники
Зарегистрирован: 16.06.2012(UTC)
Сообщений: 14
Откуда: Moscow

Да могу прислать сертификат. Еще такой вопрос. JCP и JTLS в демо режиме работают? JTLS у меня не ставится.

Из документации

Предварительно установить КриптоПро JCP (включая модули шифрования). Далее установку можно выполнить двумя путями:

1. Выполнить команду "<JRE>/bin/java -jar cpSSL.jar" и затем ввести серийный номер через контрольную панель

Ошибка
C:\temp\jcp\jtls.1.0.53\lib>java -jar cpSSL.jar
19.06.2012 9:43:14 ru.CryptoPro.ssl.ManifestInstall main
INFO: ManifestInstall start...
19.06.2012 9:43:14 ru.CryptoPro.ssl.ManifestInstall main
INFO: ManifestInstall url = file:/C:/temp/jcp/jtls.1.0.53/lib/cpSSL.jar
ShellInstaller makeAction start...
Exception in thread "main" ru.CryptoPro.Install.ExpectedArgumentException: lдна
из ояций:-install, -uninstall, -help, -installed не найдена.
at ru.CryptoPro.Install.GeneralConsoleSettings.a(Unknown Source)
at ru.CryptoPro.Install.GeneralConsoleSettings.<init>(Unknown Source)
at ru.CryptoPro.Install.ShellInstaller.makeAction(Unknown Source)
at ru.CryptoPro.ssl.ManifestInstall.main(Unknown Source)

2. Выполнить установку с вводом серийного номера
<JRE>/bin/java -cp cpSSL.jar ru.CryptoPro.ssl.JTLSInstall -install -verbose -sslserial XXXXX-XXXXX-XXXXX-XXXXX-XXXXX -sslcompany "My Company"

INFO: JTLSInstall checkInstallLicense isServer: true
ru.CryptoPro.Install.ArgumentException: Incorrect product type
at ru.CryptoPro.ssl.JTLSInstall.a(Unknown Source)
at ru.CryptoPro.ssl.JTLSInstall.parseArgs(Unknown Source)
at ru.CryptoPro.Install.GeneralConsoleSettings.parseArgs(Unknown Source)

at ru.CryptoPro.Install.ShellInstaller.makeAction(Unknown Source)
at ru.CryptoPro.Install.ShellInstaller.makeActionNoEx(Unknown Source)
at ru.CryptoPro.ssl.JTLSInstall.main(Unknown Source)
Caused by: ru.CryptoPro.JCP.tools.LicenseException: Incorrect product type
... 6 more
ShellInstaller makeActionNoEx end.


Offline Евгений Афанасьев  
#8 Оставлено : 19 июня 2012 г. 13:47:19(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Pavr написал:

Ошибка
C:\temp\jcp\jtls.1.0.53\lib>java -jar cpSSL.jar

Да, есть ошибка при установке без лицензии, в ближайшее время обновим архив.

Я посмотрел ваш сертификат, в нем указан алгоритм подписи: ГОСТ Р 34.11/34.10-94, а алгоритм откр. ключа: ГОСТ Р 34.10-2001. Попробуйте выпустить сертификат через консоль ControlPane.

При установке jtls с лицензией вы вводили свой номер лицензии?
Offline Ivanov-aa  
#9 Оставлено : 19 июня 2012 г. 14:08:58(UTC)
Ivanov-aa

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

Группы: Участники
Зарегистрирован: 01.08.2011(UTC)
Сообщений: 674
Откуда: Москва

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 38 раз в 36 постах
А вы пробовали запустить с опцией -install?

C:\temp\jcp\jtls.1.0.53\lib>java -jar cpSSL.jar -install
Offline Pavr  
#10 Оставлено : 19 июня 2012 г. 16:40:47(UTC)
Pavr

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

Группы: Участники
Зарегистрирован: 16.06.2012(UTC)
Сообщений: 14
Откуда: Moscow

Ivanov-aa написал:
А вы пробовали запустить с опцией -install?

C:\temp\jcp\jtls.1.0.53\lib>java -jar cpSSL.jar -install


Да, спасибо, так установилось.


afev написал:
Pavr написал:

Я посмотрел ваш сертификат, в нем указан алгоритм подписи: ГОСТ Р 34.11/34.10-94, а алгоритм откр. ключа: ГОСТ Р 34.10-2001. Попробуйте выпустить сертификат через консоль ControlPane.


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