25.06.2007 20:22:31JCP JTLS Test Ответов: 2
Дмитрий
Подскажите, я взял пример из документации по JTLS,
хочу заставить этот пример работать для доступа к существующему сайту ( а не как в примере к серверу, поднимаемому из той же программы) по https. Для этого я куски кода запуска сервера закомментировал а адрес (localhost) и порт по которому надо обращаться заменил на имя сервера и 443.

При запуске этой программы я получаю следующее сообщение

25.06.2007 20:04:29 ru.CryptoPro.JCP.tools.k a
INFO: Loading JCP...
25.06.2007 20:04:29 ru.CryptoPro.JCP.tools.k a
INFO: JCP loaded.
Exception in thread "main" java.net.SocketException: Default SSL context init failed:
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(Unknown Source)
at Test$Client.get(Test.java:103)
at Test.main(Test.java:43)

Правильно ли я понимаю, что до обращения к серверу дело просто не доходит а все ломается еще при инициализации SSL?

Вот та строка кода, которая указана в сообщении об ошибке

SSLSocketFactory sslFact = (SSLSocketFactory) SSLSocketFactory.getDefault();

В чем может быть причина Default SSL context init failed?

Файл java.security кроме прочего содержит следующие строки

security.provider.1=sun.security.provider.Sun
security.provider.2=ru.CryptoPro.ssl.Provider
security.provider.3=ru.CryptoPro.JCP.JCP
security.provider.4=ru.CryptoPro.Crypto.CryptoProvider

ssl.KeyManagerFactory.algorithm=GostX509;
ssl.TrustManagerFactory.algorithm=GostX509;

Эти настройки я взял из документации по JTLS, больше там ничего не говорилось, может что-то надо подкрутить?

Сама программка запускается так:

java -Xbootclasspath/p:c:\progra~1\java\jre1.5.0_11\lib\ext\xjsse4.jar -Xbootclasspath/p:c:\progra~1\java\jre1.5.0_11\lib\ext\cpSSL.jar Test

Или может помогите найти пример работающего HTTPS клиента?

Извините если сумбурно изложил.
 
Ответы:
12.07.2007 12:08:07Ольга
попробуйте в файле java.security
присвоить следующие значения провайдеров: ssl.SocketFactory.provider=ru.CryptoPro.ssl.SSLSocketFactoryImpl; ssl.ServerSocketFactory.provider=ru.CryptoPro.ssl.SSLServerSocketFactoryImpl;
хотя при использовании xjsse4.jar они должны присвоиться сами

ps:клиент из примера работает
12.07.2007 15:05:28Ольга
в версисии jre 1.5.0_12 (где сняты экспортные ограничения), использовать xjsse4.jar не нужно, достаточно только прописать в файле java.security
ssl.SocketFactory.provider=ru.CryptoPro.ssl.SSLSocketFactoryImpl; ssl.ServerSocketFactory.provider=ru.CryptoPro.ssl.SSLServerSocketFactoryImpl;

также -Xbootclasspath/p:c:\progra~1\java\jre1.5.0_11\lib\ext\cpSSL.jar можно не писать в любой версии jre, он включится автоматически