Статус: Участник
Группы: Участники
Зарегистрирован: 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
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,980 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 709 раз в 670 постах
|
Здравствуйте. Взаимодействие с сервисом должно осуществляться по защищенному каналу (TLS)? Вы используете jtls? Добавление в cacerts осуществляете утилитой keytool (встроенная утилита JRE)? Она должна сообщить об успешном добавлении либо вывести ошибку. Keytool IUI использует библиотеки bouncycastle и может некорректно работать в данном случае. Отредактировано пользователем 16 июня 2012 г. 18:04:46(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 16.06.2012(UTC) Сообщений: 14 Откуда: Moscow
|
Да, взаимодействие должно осуществляться по защищенному каналу. Причем канал должен быть защищен по ГОСТу. Вопрос. Если у меня установлен КриптоПРО CSP, мне для работы из Java с сервисом защищенным ГОСТ шифрованием нужно ставить КриптоПро JCP или Jtls?
Keytool не пробовал использовать. Попробую.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,980 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 709 раз в 670 постах
|
Да, нужно установить jcp и jtls в используемую jre. С помощью jtls вы сможете создать защищеннное соединение. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,980 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 709 раз в 670 постах
|
Вы не могли бы приложить сертификат? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,980 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 709 раз в 670 постах
|
Pavr написал: Ошибка C:\temp\jcp\jtls.1.0.53\lib>java -jar cpSSL.jar
Да, есть ошибка при установке без лицензии, в ближайшее время обновим архив. Я посмотрел ваш сертификат, в нем указан алгоритм подписи: ГОСТ Р 34.11/34.10-94, а алгоритм откр. ключа: ГОСТ Р 34.10-2001. Попробуйте выпустить сертификат через консоль ControlPane. При установке jtls с лицензией вы вводили свой номер лицензии? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 01.08.2011(UTC) Сообщений: 674 Откуда: Москва
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 38 раз в 36 постах
|
А вы пробовали запустить с опцией -install?
C:\temp\jcp\jtls.1.0.53\lib>java -jar cpSSL.jar -install
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 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.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close