安全的 Websocket 连接 (wss:) 在 tomcat / spring 中中止,而 https 正在工作
Secured Websocket connections (wss:) abort in tomcat / spring, while https is working
在我们的应用程序中,如果建立为 wss:,则 websocket 连接将中止,而 ws: 工作正常。
通常,websocket 不再打开几分钟。有时最多传输 20-30 帧,有时仅传输一帧或 none,然后再次关闭。 http 响应代码是 101(大多数时候,有时似乎在向客户端发送任何内容之前就中止了,chrome 网络面板在这少数情况下只显示 "finished")。
错误消息各不相同:
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
(1x)
javax.net.ssl.SSLException: error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure
(10x)
javax.net.ssl.SSLException: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
(3000x)
客户端收到 onClose(不是 onError)。
Chrome 调试器列出
https://our.domain
作为 "secure" 具有有效证书,而
wss://our.domain
作为 "unknown / canceled"
我试过使用
- Chrome 62
- 火狐 57
(并且:当客户端在服务器机器上本地运行时会发生同样的行为,所以这不可能是网络问题。)
后端是 tomcat / spring 并在 AWS EC2 Windows 服务器上运行。
如果有任何帮助,我将不胜感激:-) https 和 wss 之间有什么区别?
事实上,我们通过将服务器移动到 Ubuntu 机器解决了这个问题(顺便说一句,tomcat 需要的内存要少得多).....不过我真的会有趣的是 windows 机器上的问题是什么。
在 tomcat 8.5.23 我得到
javax.net.ssl.SSLException: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
更新到 8.5.27 或 9.0.4 可以解决我的问题。我猜他们对解决问题的 OpenSSLEngine 做了一些更改。
在我们的应用程序中,如果建立为 wss:,则 websocket 连接将中止,而 ws: 工作正常。
通常,websocket 不再打开几分钟。有时最多传输 20-30 帧,有时仅传输一帧或 none,然后再次关闭。 http 响应代码是 101(大多数时候,有时似乎在向客户端发送任何内容之前就中止了,chrome 网络面板在这少数情况下只显示 "finished")。
错误消息各不相同:
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
(1x)
javax.net.ssl.SSLException: error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure
(10x)
javax.net.ssl.SSLException: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
(3000x)
客户端收到 onClose(不是 onError)。
Chrome 调试器列出
https://our.domain
作为 "secure" 具有有效证书,而wss://our.domain
作为 "unknown / canceled"
我试过使用
- Chrome 62
- 火狐 57
(并且:当客户端在服务器机器上本地运行时会发生同样的行为,所以这不可能是网络问题。)
后端是 tomcat / spring 并在 AWS EC2 Windows 服务器上运行。
如果有任何帮助,我将不胜感激:-) https 和 wss 之间有什么区别?
事实上,我们通过将服务器移动到 Ubuntu 机器解决了这个问题(顺便说一句,tomcat 需要的内存要少得多).....不过我真的会有趣的是 windows 机器上的问题是什么。
在 tomcat 8.5.23 我得到
javax.net.ssl.SSLException: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
更新到 8.5.27 或 9.0.4 可以解决我的问题。我猜他们对解决问题的 OpenSSLEngine 做了一些更改。