背景:项目需要使用websocket长连接,走nginx反向代理会断开,所以决定要直连项目 【websocket连接https需要使用wss】
项目端口:8080
项目名:biubiu
https证书端口:8443
https配置:
<Connector port="8443"
protocol="protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="*"
keystoreType="PKCS12"
keystorePass="KhPr2Giv"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_
SHA256"/>
问题:
1. tomcat配置了https后,连接项目的url没法访问: url为: https://192.168.18.11:8080/biubiu/getUrl_.........
原因:用的是8443https端口 url应该为: https://192.168.18.11:8443/biubiu/getUrl_...... (解决)
2. 用了一段时间后,https的url接口请求超时。报错为: Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state.
原因: tomcat连接https的协议问题
解决方法: 修改tomcat server.xml配置:
protocol="HTTP/1.1",最初是protocol="org.apache.coyote.http11.Http11Protocol"修改为HTTP/1.1之后成功!