背景:項目需要使用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之后成功!