2013-04-29 1 views
2

У меня есть сервер websocket (API of jetty 9.0.1.v20130408), который отлично работал без ssl. Теперь я настроил свой сервер следующим образом:Jetty - клиент SSL Websocket

SslContextFactory sslContextFactory = new SslContextFactory(); 
sslContextFactory.setKeyStorePath("/src/main/resources/keystore.jks"); 
sslContextFactory.setKeyStorePassword(password); 
sslContextFactory.setTrustStorePath("/src/main/resources/truststore.jks"); 
sslContextFactory.setTrustStorePassword(password); 
ConnectionFactory sslConnFactory = new SslConnectionFactory(sslContextFactory, "http/1.1); 
connector.addConnectionFactory(sslConnFactory); 
server.addConnector(connector); 

Нет Я попытался настроить клиента. Я думал, что на стороне клиента мне нужно установить путь к truststore.jks и пароль. Но затем я получаю на client.start() Исключение: SSL не имеет действительного хранилища ключей. Когда я устанавливаю хранилище ключей, я получаю на client.connect java.nio.channels.WritePendingException. Вот код для моего клиента:

WebSocketClient client = new WebSocketClient(sslContextFactory); 
URI wssUri = new URI("wss://localhost:"+port); 
sslContextFactory.start(); 
client.start(); 
client.connect(myClientSocket, wssUri); 

Может кто-нибудь мне помочь? Я также попытался на стороне сервера установить setWantClientAuth (false) и setTrustall (true), но он также не работал таким образом;

ДОБАВЛЕНО:

я произвожу мои Ssl файлы с Keytool.

$ keytool -genkeypair -alias certificatekey -keyalg RSA -validity 365 -keystore keystore.jks 
$ keytool -export -alias certificatekey -keystore keystore.jks -rfc -file selfsignedcert.cer 
$ keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore.jks 
+0

Вы пытаетесь использовать клиентские сертификаты? или просто стандартный SSL? –

+0

SSL - это новое для меня. Поэтому я сгенерировал такие файлы, как keystore.jks, truststore.jks и certifcate.cert с помощью keytool. Для создания файлов я следил за учебником: http://www.techbrainwave.com/?p=953. Пока я использую те же файлы для клиента и сервера. – Salvadora

+0

Я добавил команды keytool, которые я использовал для генерации файлов в свой первый пост. – Salvadora

ответ

1

Это происходит потому, что UpgradeRequest отправляется в два раза, сообщает here

Вы можете проигнорировать предупреждение сейчас. Просто используйте 9.0.4, когда он будет выпущен.