安全的Websocket连接(wss :)在tomcat / spring中止,而https正在工作

时间:2017-12-09 13:20:03

标签: tomcat amazon-ec2 https websocket windows-server-2012-r2

在我们的应用中,如果建立为wss:,则会中止websocket连接,而ws:工作正常。

通常,在几分钟内,websocket不再打开。有时会传输多达20-30帧,有时只有一帧或没有帧再次关闭。 http响应代码为101(大多数情况下,有时似乎在将任何内容发送到客户端之前中止,Chrome网络面板在这几种情况下显示为“已完成”)。

错误消息各不相同:

javax.net.ssl.SSLException: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request

(4000X)

javax.net.ssl.SSLException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol

(1×)

javax.net.ssl.SSLException: error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure

(10×)

javax.net.ssl.SSLException: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init

(3000倍)

客户端收到onClose(不是onError)。

Chrome调试器列表

  • https://our.domain为“安全”且有效证书,而
  • wss://our.domain为“未知/已取消”

我尝试使用

  • Chrome 62
  • Firefox 57

(并且:当客户端在服务器的机器上本地运行时会发生相同的行为,因此它不会成为网络问题。)

后端是tomcat / spring,在AWS EC2 Windows服务器上运行。

我很感激任何帮助:-) https和wss之间可能有什么区别?

2 个答案:

答案 0 :(得分:0)

事实上,我们通过将服务器移动到Ubuntu机器来解决了这个问题(顺便说一句,这需要显着减少tomcat的内存).....然而我真的很有趣的是Windows机器上的问题是什么。

答案 1 :(得分:0)

在tomcat 8.5.23上我得到了

  

javax.net.ssl.SSLException:错误:140E0197:SSL例程:SSL_shutdown:在init中关闭

更新到8.5.27或9.0.4为我解决了这个问题。我猜他们在解决问题的OpenSSLEngine上做了一些改动。