在我们的应用中,如果建立为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
为“未知/已取消”我尝试使用
(并且:当客户端在服务器的机器上本地运行时会发生相同的行为,因此它不会成为网络问题。)
后端是tomcat / spring,在AWS EC2 Windows服务器上运行。
我很感激任何帮助:-) https和wss之间可能有什么区别?
答案 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上做了一些改动。