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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline est412  
#1 Оставлено : 13 июля 2015 г. 14:14:58(UTC)
est412

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

Группы: Участники
Зарегистрирован: 14.10.2014(UTC)
Сообщений: 38
Российская Федерация
Откуда: Казань

Сказал(а) «Спасибо»: 12 раз
Поблагодарили: 1 раз в 1 постах
Коллеги, поделитесь тайным знанием, если кто сталкивался...

Использую JCP 2.0 под java 1.8.0_45.
Пытаюсь настроить SSL/TLS соединение с сервером через клиента на Apache CXF.
На стороне сервера стоит КриптоПро CSP, но дело, видимо, не в нём.
Танцы с бубном помогли настроить загрузку KeyStore и сертификатов из TrustStore.
Процесс рукопожатия доходит до отправки сервером сертификата в сторону клиента, но после этого имеем на клиенте ошибку:
Код:
июл 13, 2015 1:42:56 PM ru.CryptoPro.ssl.an a
FINE: Camel (TestSSLGOSTWSClient-ctx) thread #0 - timer://cTimer_1, SEND TLSv1 ALERT:  fatal, description = CERTIFICATE_UNKNOWN
... cut ...
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No X509TrustManager implementation available
	at ru.CryptoPro.ssl.B.a(Unknown Source)
	at ru.CryptoPro.ssl.an.a(Unknown Source)
	at ru.CryptoPro.ssl.f.a(Unknown Source)
	at ru.CryptoPro.ssl.f.a(Unknown Source)
	at ru.CryptoPro.ssl.ao.a(Unknown Source)
	at ru.CryptoPro.ssl.ao.a(Unknown Source)
	at ru.CryptoPro.ssl.f.o(Unknown Source)
	at ru.CryptoPro.ssl.f.a(Unknown Source)
	at ru.CryptoPro.ssl.an.a(Unknown Source)
	at ru.CryptoPro.ssl.an.i(Unknown Source)
	at ru.CryptoPro.ssl.an.startHandshake(Unknown Source)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282)
	at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1257)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
	at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:184)


Танцы с бубном состояли в комбинированном использовании Spring:
Код:
<http:conduit name="...">
    <http:tlsClientParameters disableCNCheck="true" secureSocketProtocol="GostTLS">
      <sec:cipherSuitesFilter>
        <sec:include>TLS_CIPHER_2001</sec:include>
		<sec:include>TLS_CIPHER_94</sec:include>
		<sec:include>SSL3_CK_GVO_KB2</sec:include>
		<sec:include>SSL3_CK_GVO</sec:include>
      </sec:cipherSuitesFilter>
    </http:tlsClientParameters>
    <http:client AutoRedirect="true" Connection="Keep-Alive"/>
</http:conduit>

и системных переменных:
Код:
System.setProperty("javax.net.ssl.trustStorePassword","password");
System.setProperty("javax.net.ssl.trustStoreType","HDImageStore"); 
System.setProperty("javax.net.ssl.trustStore","C:/_Keystores_/trusted.store");
System.setProperty("javax.net.ssl.trustStoreProvider","JCP");
Security.setProperty("ssl.TrustManagerFactory.algorithm","GostX509");

System.setProperty("javax.net.ssl.keyStorePassword","password");
System.setProperty("javax.net.ssl.keyStoreType","HDImageStore");
System.setProperty("javax.net.ssl.keyStoreProvider","JCP");
Security.setProperty("ssl.KeyManagerFactory.algorithm","GostX509");

хотел бы перевести всю настройку на системные переменные, но не нашел каким переменным соответствуют атрибуты:
Код:
disableCNCheck="true" 
secureSocketProtocol="GostTLS"

Ай нид хелп... =)
Offline Евгений Афанасьев  
#2 Оставлено : 13 июля 2015 г. 14:20:33(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Здравствуйте.
Попробуйте еще
Код:

Security.setProperty("ssl.SocketFactory.provider", "ru.CryptoPro.ssl.SSLSocketFactoryImpl");
Security.setProperty("ssl.ServerSocketFactory.provider", "ru.CryptoPro.ssl.SSLServerSocketFactoryImpl");

добавить.
Offline est412  
#3 Оставлено : 13 июля 2015 г. 14:42:35(UTC)
est412

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

Группы: Участники
Зарегистрирован: 14.10.2014(UTC)
Сообщений: 38
Российская Федерация
Откуда: Казань

Сказал(а) «Спасибо»: 12 раз
Поблагодарили: 1 раз в 1 постах
Добавил, ошибка осталась той же.

Прошу прощения, забыл указать в первом посте следующее...
После успешной (?) инициализации SSL контекста выбрасывается следующее исключение:
Код:
июл 13, 2015 2:29:40 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: Context initiated.
[WARN ]: org.apache.cxf.transport.https.HttpsURLConnectionFactory - Default key managers cannot be initialized: Default store provider (keyStore) is SUN but default config provider (cpSSL) is JCP. Check settings on the tab 'Algorithms' of JCP Pane.
java.security.KeyStoreException: Default store provider (keyStore) is SUN but default config provider (cpSSL) is JCP. Check settings on the tab 'Algorithms' of JCP Pane.
	at ru.CryptoPro.ssl.r.<init>(Unknown Source)
	at ru.CryptoPro.ssl.KeyManagerFactoryImpl.engineInit(Unknown Source)
	at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:256)
	at org.apache.cxf.configuration.jsse.SSLUtils.loadDefaultKeyManagers(SSLUtils.java:176)
	at org.apache.cxf.configuration.jsse.SSLUtils.getDefaultKeyStoreManagers(SSLUtils.java:150)
	at org.apache.cxf.transport.https.HttpsURLConnectionFactory.decorateWithTLS(HttpsURLConnectionFactory.java:165)
	at org.apache.cxf.transport.https.HttpsURLConnectionFactory.createConnection(HttpsURLConnectionFactory.java:106)
	at org.apache.cxf.transport.http.URLConnectionHTTPConduit.createConnection(URLConnectionHTTPConduit.java:102)
	at org.apache.cxf.transport.http.URLConnectionHTTPConduit.setupConnection(URLConnectionHTTPConduit.java:106)
	at org.apache.cxf.transport.http.HTTPConduit.prepare(HTTPConduit.java:497)

но далее процесс не падает, а переходит к рукопожатию...
Offline Евгений Афанасьев  
#4 Оставлено : 13 июля 2015 г. 14:45:42(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
В панели JCP на закладке "Алгоритмы" провайдер по умолчанию - JCP? Java CSP не установлен?
Судя по всему, KeyStore передается от SUN, с его провайдером, потому такая ошибка. Вероятно, поэтому менеджер ключей пропадает.
Offline est412  
#5 Оставлено : 13 июля 2015 г. 14:52:16(UTC)
est412

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

Группы: Участники
Зарегистрирован: 14.10.2014(UTC)
Сообщений: 38
Российская Федерация
Откуда: Казань

Сказал(а) «Спасибо»: 12 раз
Поблагодарили: 1 раз в 1 постах
Проверил.
Дефолт провайдер - JCP, и он единственный. На Java CSP я галочку не ставил при установке.
Offline Евгений Афанасьев  
#6 Оставлено : 13 июля 2015 г. 15:37:35(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Значит, все-таки попадает какой-нибудь JKS keystore (раз провайдер SUN у него определяется, а должен быть JCP, т.е. keystore с типом HDImageStore).
Offline est412  
#7 Оставлено : 13 июля 2015 г. 16:24:44(UTC)
est412

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

Группы: Участники
Зарегистрирован: 14.10.2014(UTC)
Сообщений: 38
Российская Федерация
Откуда: Казань

Сказал(а) «Спасибо»: 12 раз
Поблагодарили: 1 раз в 1 постах
Интересная деталь...
Переименовал все jks-контейнеры какие были в JRE и в user.home,
и ошибка
Код:
Default store provider (keyStore) is SUN but default config provider (cpSSL) is JCP. Check settings on the tab 'Algorithms' of JCP Pane.

пропала =))
Но результат не изменился - No X509TrustManager implementation available
Offline Евгений Афанасьев  
#8 Оставлено : 13 июля 2015 г. 16:34:03(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Может, они теперь просто не приходят?
Как вариант - попробовать исходники к себе скопировать и поотлаживать, найти место, где создается/используется SSL контект.
Offline est412  
#9 Оставлено : 13 июля 2015 г. 16:55:13(UTC)
est412

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

Группы: Участники
Зарегистрирован: 14.10.2014(UTC)
Сообщений: 38
Российская Федерация
Откуда: Казань

Сказал(а) «Спасибо»: 12 раз
Поблагодарили: 1 раз в 1 постах
Задал вопрос на cxf-user. Подождем результатов...
Offline ArthurKh  
#10 Оставлено : 2 сентября 2015 г. 11:40:48(UTC)
ArthurKh

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

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

Сказал(а) «Спасибо»: 4 раз
Автор: est412 Перейти к цитате
Переименовал все jks-контейнеры какие были в JRE и в user.home,


Привет.
А как вы их вообще нашли? :)
У меня схожая проблема - https://www.cryptopro.ru...ts&m=61827#post61827 - пока что не могу осилить её.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.