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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Max_Maltseff  
#1 Оставлено : 7 октября 2008 г. 19:35:39(UTC)
Max_Maltseff

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

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

Добрый день,
я веду разработку http клиента для доступа к ресурсам, использующим сертификаты и аутентификацию КрипоПро.
В качестве основы использую Apache HttpClirn
Возник ряд вопросов:
1) Если использывать JCP и пытаться обратиться обратиться к https://cpca.cryptopro.ru/ping.txt то вылетает сообщение: "Server did not send a DH Server Key Exchange message"
2) Если использывать JTLS и обращаться туда же то получаю сообщения: "No appropriate keys for handhake" и "java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty"

Предварительная загрузка сертификата в хранилище результатов не дала. Грузил так:
Код:
KeyStore store = KeyStore.getInstance("HDImageStore");
store.load(null, null);
Certificate certificate = CertificateFactory.getInstance("X.509").generateCertificate(new FileInputStream("ping.cer"));
store.setCertificateEntry("ping.cer", certificate);
store.store(null, null);


Подскажите пожалуйста, как корректно построить работу клиента.
Offline Ольга  
#2 Оставлено : 7 октября 2008 г. 19:38:45(UTC)
Ольга

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

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

Поблагодарили: 3 раз в 3 постах
первым делом посмотрите примеры ssl-соединения (samples/JTLS_Samples)
Offline Max_Maltseff  
#3 Оставлено : 7 октября 2008 г. 20:43:15(UTC)
Max_Maltseff

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

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

Спасибо, посмотрел,
но там создание сертификата (servkey.java),
а запуск URLClient.java привёл к тем же ошибкам =(

WARNING: %% No appropriate keys for handhake
javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

что касается Client.java то, если я не ошибаюсь, это режим русчной работы http клиента, но до него из-за ошибки дело не доходит.
Offline Ольга  
#4 Оставлено : 7 октября 2008 г. 21:04:44(UTC)
Ольга

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

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

Поблагодарили: 3 раз в 3 постах
Max_Maltseff написал:
Грузил так:
Код:
KeyStore store = KeyStore.getInstance("HDImageStore");
store.load(null, null);
Certificate certificate = CertificateFactory.getInstance("X.509").generateCertificate(new FileInputStream("ping.cer"));
store.setCertificateEntry("ping.cer", certificate);
store.store(null, null);


сертификаты хранятся в отдельном хранилище доверенных сертификатов, поэтому сохранять надо так:
Код:
store.store(new FileOutputStream("C:\test.store"), "11111")

настройки для обращения к этому хранилищу:
Код:
System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.trustStore", "C:\test.store");
System.setProperty("javax.net.ssl.trustStorePassword", "11111");
Offline Max_Maltseff  
#5 Оставлено : 7 октября 2008 г. 21:31:37(UTC)
Max_Maltseff

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

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

Спасибо большое, тепери оно явно не пустое и оошибка пропала, однако, появилась новая - как при попытке использывать HttpClient, так и при попытке просто что либо отправить в стрим:
Код:
SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault();
		SSLSocket  socket = (SSLSocket) factory.createSocket("cpca.cryptopro.ru", 443);
		OutputStream os = socket.getOutputStream();
		os.write(5);
		os.flush();

Вывод программы:
WARNING: %% No appropriate keys for handhake
Exception in thread "main" javax.net.ssl.SSLException: java.lang.UnsupportedOperationException
at ru.CryptoPro.ssl.J.a(Unknown Source)
at ru.CryptoPro.ssl.s.a(Unknown Source)
at ru.CryptoPro.ssl.s.a(Unknown Source)
at ru.CryptoPro.ssl.s.a(Unknown Source)
at ru.CryptoPro.ssl.Y.write(Unknown Source)
at ru.CryptoPro.ssl.Y.write(Unknown Source)
at certsTEst.main(certsTEst.java:81)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Caused by: java.lang.UnsupportedOperationException
at javax.crypto.CipherSpi.engineGetKeySize(DashoA13*..)
at javax.crypto.CipherSpi.engineGetKeySize(DashoA13*..)
at javax.crypto.Cipher.b(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at ru.CryptoPro.ssl.gostTLS.e.a(Unknown Source)
at ru.CryptoPro.ssl.gostTLS.a.a(Unknown Source)
at ru.CryptoPro.ssl.a.a(Unknown Source)
at ru.CryptoPro.ssl.a.a(Unknown Source)
at ru.CryptoPro.ssl.K.k(Unknown Source)
at ru.CryptoPro.ssl.K.a(Unknown Source)
at ru.CryptoPro.ssl.s.a(Unknown Source)
at ru.CryptoPro.ssl.s.h(Unknown Source)
... 9 more
Offline Ольга  
#6 Оставлено : 7 октября 2008 г. 21:35:50(UTC)
Ольга

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

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

Поблагодарили: 3 раз в 3 постах
снять экспортные ограничения (например, скопировать US_export_policy.jar в local_policy.jar)
Offline Max_Maltseff  
#7 Оставлено : 7 октября 2008 г. 21:44:56(UTC)
Max_Maltseff

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

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

Спасибо!
Заработало! Огромное Вам спасибо!
Offline sweet_bear  
#8 Оставлено : 13 января 2012 г. 16:35:15(UTC)
sweet_bear

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

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

Доброе время суток!

Столкнулся с такой же проблемой. Обращаюсь к ресурсам, использующим сертификаты и аутентификацию КрипоПро. Использую связку HttpClient + SSLTCContext. Получил следующую ошибку:

java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.