tomcat配置https以及配置完成後提示伺服器缺少中間證書(已解決)
tomcat配置https
準備工作
下載好證書檔案,下載的時候可以選擇為tomcat檔案。我這下載下來是壓縮包。解壓後就是下圖的樣子。
以.key結尾的檔案是證書的key
以.pem結尾的檔案是證書檔案
第一步
在Tomcat的目錄下,建立一個資料夾,我這檔名是cert,將下載好的證書解壓後複製到這個資料夾裡面。Tomcat支援PFX格式和JKS兩種格式的證書,您可根據您Tomcat的版本擇其中一種格式的證書安裝到Tomcat上。很明顯我下載下來的檔案都不包含以上兩種檔案,所以需要我們自己轉為pfx檔案或者jks檔案,這兩種檔案都支援,選其一即可。
到cert目錄下執行如下命令完成PFX格式轉換命令,此處要設定PFX證書密碼,請牢記:
openssl pkcs12 -export -out 2424966.pfx -inkey 2424966.key -in 2424966.pem
其中的檔名可以自定義。
這個命令執行完成後可以生成.pfx檔案。
第二步
找到安裝Tomcat目錄下該檔案server.xml,一般預設路徑都是在 conf 資料夾中。找到 <Connection port="xxx"標籤,增加如下屬性,完整的配置如下:(其中port屬性請根據您的實際情況修改)
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true" scheme="https" secure="true" keystoreFile="cert/domain name.pfx" #此處keystoreFile代表證書檔案的路徑,請用您證書的檔名替換。 keystoreType="PKCS12" keystorePass="證書密碼" #請用您證書密碼檔案中的密碼替換“證書密碼”。 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"/>
配置完成後重啟tomcat,然後訪問域名進行測試。
jks格式的證書配置方式
使用java jdk將PFX格式證書轉換為JKS格式證書(windows環境注意在%JAVA_HOME%/jdk/bin目錄下執行)
keytool -importkeystore -srckeystore 2424966.pfx -destkeystore your-name.jks -srcstoretype PKCS12 -deststoretype JKS
回車後輸入JKS證書密碼和PFX證書密碼,強烈推薦將JKS密碼與PFX證書密碼相同,否則可能會導致Tomcat啟動失敗。(上面命令中的檔名改為自己的即可)
tomcat配置檔案server.xml的寫法參考如下:
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/domain name.jks" #此處keystoreFile代表證書檔案的路徑,請用您證書的檔名替換domain name。
keystoreType="PKCS12"
keystorePass="證書密碼" #請用您證書密碼檔案中的密碼替換“證書密碼”。
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"/>
更改完成後儲存,重啟tomcat進行測試即可。
進行證書檢測的時候提示伺服器缺少中間證書的解決辦法
可以先去這個網站檢測一下配置的https https://www.myssl.cn/tools/check-server-cert.html我這遇到的問題是,網址訪問沒問題,但是放到微信小程式後臺服務上,當小程式訪問的時候會出現問題,原因就是伺服器缺少中間證書。在安卓環境會出現這種情況,但是在蘋果就沒有,但是還是得解決啊。解決辦法就是在https://www.myssl.cn/tools/downloadchain.html這個網站上按照要求去生成一箇中間證書,然後將生成的中間證書的內容貼上到之前下載好的證書的檔案裡面。然後按照之前配置https的方法再重新配置一次。然後重啟tomcat再進行測試就好了