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