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