1. 程式人生 > >tomcat配置https以及配置完成後提示伺服器缺少中間證書(已解決)

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再進行測試就好了