3

我尝试使用 java 小程序连接到 wss(安全 Websocket)服务器,但 ssl 握手失败,没有任何有用的日志条目。

如果我连接到 wss://echo.websocket.org 握手工作正常,所以我认为这不是一般的 java 代码错误。

如果我尝试连接到我自己的服务器,则会发送 HelloDone 位(由 wireshark 验证),但连接以挂断结束,并且不在日志中。通常日志中应该有以下消息:“ *** ServerHelloDone

请参阅我的“ javax.net.debug=sll ” 的 java 控制台日志http://pastebin.com/ZuvKww4J 它没有被截断,它只是在那里结束。几秒钟后,tcp 连接超时消息被添加到日志中。

我使用以下 java 代码示例: https ://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/SSLClientExample.java

但我使用的不是密钥库:

sslContext.init( null, null, null );

对于服务器,我有两个不同的测试系统:

  1. 在 443 端口有一个 ha-proxy
  2. 在港口 8443 一个隧道。

我试图用不同的方法隔离错误。首先,我使用 stunnel 强制使用与 echo.websocket.org "SSL_RSA_WITH_RC4_128_SHA" 相同的密码,但没有成功。

其次,我检查了 ssl 证书本身是否仍然有效。但是,由于我的 java 小程序的 Web 浏览器和正常的 https 连接被服务器(相同的服务器。ha-proxy orstunnel)接受,一切都在那个时候工作。

4

1 回答 1

0

Java-WebSocket 的维护者解决了问题。大过

于 2013-04-22T14:13:24.253 回答