| ||||
| ||||
Подскажите, я взял пример из документации по 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 клиента? Извините если сумбурно изложил. | ||||
Ответы: | ||||
| ||||
попробуйте в файле java.security присвоить следующие значения провайдеров: ssl.SocketFactory.provider=ru.CryptoPro.ssl.SSLSocketFactoryImpl; ssl.ServerSocketFactory.provider=ru.CryptoPro.ssl.SSLServerSocketFactoryImpl; хотя при использовании xjsse4.jar они должны присвоиться сами ps:клиент из примера работает | ||||
| ||||
в версисии 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, он включится автоматически | ||||