Jetty-SSL Websocket客户端

Jetty-SSL Websocket客户端,websocket,jetty,embedded-jetty,Websocket,Jetty,Embedded Jetty,我有一个websocket服务器(jetty 9.0.1.v20130408的API),在没有ssl的情况下运行良好。现在,我将服务器配置为: SslContextFactory SslContextFactory=new SslContextFactory(); setkeystrepath(“/src/main/resources/keystore.jks”); setKeyStorePassword(密码); setTrustStorePath(“/src/main/resources/t

我有一个websocket服务器(jetty 9.0.1.v20130408的API),在没有ssl的情况下运行良好。现在,我将服务器配置为:

SslContextFactory SslContextFactory=new SslContextFactory();
setkeystrepath(“/src/main/resources/keystore.jks”);
setKeyStorePassword(密码);
setTrustStorePath(“/src/main/resources/truststore.jks”);
sslContextFactory.setTrustStorePassword(密码);
ConnectionFactory SSLConFactory=新的SslConnectionFactory(sslContextFactory,http/1.1);
连接器。添加连接工厂(SSLConFactory);
addConnector(连接器);
不,我试图配置客户端。我想,在客户端,我需要设置truststore.jks的路径和密码。但随后我进入client.start()异常:SSL没有有效的密钥库。当我设置密钥库时,我进入client.connect java.nio.channels.WritePendingException。以下是我客户端的代码:

WebSocketClient客户端=新的WebSocketClient(sslContextFactory);
URI wssUri=新URI(“wss://localhost:“+港口);
sslContextFactory.start();
client.start();
connect(myClientSocket,wssUri);
有人能帮我吗?我还尝试在服务器端设置setWantClientAuth(false)和setTrustall(true),但也没有这样做

添加:

我使用keytool生成ssl文件

$ 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

这是因为UpgradeRequest发送了两次,如报告所述


您现在可以忽略此警告。发布时只需使用9.0.4。

您是尝试使用客户端证书?还是仅使用标准SSL?SSL对我来说是新的。因此,我使用keytool生成了keystore.jks、truststore.jks和certifcate.cert等文件。为了生成文件,我遵循了教程:。目前,我正在为客户端和客户端使用相同的文件我在第一篇文章中添加了用于生成文件的keytool命令。