在Tomcat服務器上安裝SSL證書
發布時間: 2022/01/04
本章節介紹如何將下載的證書安裝到Tomcat服務器上。安裝好證書後,您的Web服務器將能支持SSL通信。
如果證書安裝過程中遇到問題,提供SSL證書配置優化服務,可實現雲上全品牌SSL證書配置,工程師一對一服務。請直接單擊一對一谘詢進行購買,購買服務後,聯係工程師進行處理。
前提條件
- “證書狀態”為 “已簽發”。
- 已下載SSL證書,具體操作請參見下載證書。
- 已安裝OpenSSL工具。
您可以從 “http://www.openssl.org/source/”下載的OpenSSL工具安裝包(要求OpenSSL版本必須是1.0.1g或以上版本)。
- 已安裝Keytool工具。
Keytool工具一般包含在Java Development Kit(JDK)工具包中。
約束條件
- 證書安裝前,務必在安裝SSL證書的服務器上開啟 “443”端口,同時在組增加 “443”端口,避免安裝後仍然無法啟用HTTPS。
- 如果一個域名有多個服務器,則每一個服務器上都要部署。
- 待安裝證書的服務器上需要運行的域名,必須與證書的域名一一對應,即購買的是哪個域名的證書,則用於哪個域名。否則安裝部署後,瀏覽器將提示不。
操作步驟
在Tomcat服務器上安裝SSL證書的流程如下所示:
①獲取文件 → ②創建目錄 → ③修改配置文件 → ④重啟Tomcat → ⑤效果驗證
步驟一:獲取文件
安裝證書前,需要獲取證書文件和密碼文件,請根據申請證書時選擇的 “證書請求文件”生成方式來選擇操作步驟:
- 如果申請證書時, “證書請求文件”選擇 “係統生成CSR”。
- 如果申請證書時, “證書請求文件”選擇 “自己生成CSR”。
具體操作如下:
- 係統生成CSR
- 在本地解壓已下載的證書文件。
下載的文件包含了 “Apache”、 “IIS”、 “Nginx”、 “Tomcat”4個文件夾和1個 “domain.csr”文件,如圖1所示。圖1本地解壓SSL證書
- 從 “ 證書ID_ 證書綁定的域名_Tomcat”文件夾內獲得證書文件 “ 證書ID_ 證書綁定的域名_server.jks”和密碼文件 “ 證書ID_ 證書綁定的域名_keystorePass.txt”。
須知:
密碼文件 “keystorePass.txt”中的密碼為服務默認生成的初始密碼,為了您的係統,建議您及時修改該密碼。轉換證書格式時可修改密碼
- 在本地解壓已下載的證書文件。
- 自己生成CSR
- 解壓已下載的證書壓縮包,獲得 “ 證書ID_ 證書綁定的域名_server.pem”文件。
“ 證書ID_ 證書綁定的域名_server.pem”文件包括兩段證書代碼 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”,分別為服務器證書和中級CA證書。
- 使用OpenSSL工具,將pem格式證書轉換為PFX格式證書,得到 “server.pfx”文件。
- “pem”文件和生成CSR時的私鑰 “server.key”放在OpenSSL工具安裝目錄的bin目錄下。
- 在OpenSSL工具安裝目錄的bin目錄下,執行以下命令將pem格式證書轉換為PFX格式證書,按“Enter”。
openssl pkcs12 -export -out server.pfx -inkey server.key -in 證書ID_ 證書綁定的域名_ server.pem
回顯信息如下:
Enter Export Password:
- 輸入PFX證書密碼,按“Enter”。
此處輸入的密碼為用戶自定義密碼,請根據自己的需求進行設置並輸入密碼。
回顯信息如下:
Verifying - Enter Export Password:
說明:請牢記此處輸入的PFX證書密碼。後續設置JKS密碼需要與此處設置的PFX密碼保持一致,否則可能會導致Tomcat啟動失敗。
為提高用戶密碼性,建議按以下複雜度要求設置密碼:
- 密碼長度為8~32個字符。
- 少需要包含大寫字母、小寫字母、數字、空格、特殊字符~`!@#$%^&*()_+|{}:"<>?-=\[];',./中的3種類型字符。
- 再次輸入PFX證書密碼,按“Enter”。
當係統沒有回顯任何錯誤信息,表示已在OpenSSL工具安裝目錄下成功生成 “server.pfx”文件。
- 使用Keytool工具,將PFX格式證書文件轉換成JKS格式,得到 “server.jks”文件。
- 將2中生成的 “server.pfx”文件拷貝到 “%J**A_HOME%/jdk/bin”目錄下。
- 在 “%J**A_HOME%/jdk/bin”目錄下,執行以下命令,按“Enter”。
keytool -importkeystore -srckeystore server.pfx -destkeystore server.jks -srcstoretype PKCS12 -deststoretype JKS
回顯信息如下:
輸入目標密鑰庫口令:
- 輸入JKS證書密碼,按“Enter”。
須知:
請將JKS密碼設置為與PFX證書密碼相同的密碼,否則可能會導致Tomcat啟動失敗。
回顯信息如下:
再次輸入新口令:
- 再次輸入JKS證書密碼,按“Enter”。
回顯信息如下:
輸入源密鑰庫口令:
- 輸入2.c中設置PFX證書密碼,按“Enter”。
回顯類似如下信息時,則表示轉換成功,已在OpenSSL工具安裝目錄下成功生成 “server.jks”文件。
已成功導入別名 1的條目。 已完成導入命令:1個條目成功導入,0個條目失敗或取消
- 在 “%J**A_HOME%/jdk/bin”目錄下新建一個 “keystorePass.txt”文件,將JKS的密碼保存在該文件中。
- 將轉換後的證書文件 “server.jks”和新建的密碼文件 “keystorePass.txt”放在同一目錄下。
- 解壓已下載的證書壓縮包,獲得 “ 證書ID_ 證書綁定的域名_server.pem”文件。
步驟二:創建目錄
在Tomcat的安裝目錄下創建 “cert”目錄,並且將證書文件 “server.jks”和密碼文件 “keystorePass.txt”拷貝到 “cert”目錄中。
步驟三:修改配置文件
Tomcat7:Tomcat7請參見本部分內容進行配置。
Tomcat8.5/9:Tomcat8.5/9請參見本部分內容進行配置。
具體操作如下:
- Tomcat7
- 在Tomcat安裝目錄的 “server.xml”文件中找到如下參數:
<!--<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" **Threads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> -->
- 找到以上參數,去掉<!- - 和 - ->這對注釋符。
- 增加以下2個參數,請根據表1修改參數的值。
keystoreFile="cert/server.jks" keystorePass="證書密碼"
完整配置如下,其餘參數請根據實際情況進行修改:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" **Threads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="cert/server.jks" keystorePass="證書密碼" clientAuth="false" sslProtocol="TLS" />
須知:不要直接拷貝所有配置,添加 “keystoreFile”, “keystorePass”參數即可,其它參數請根據自己的實際情況修改。
表1參數說明(一) 參數
參數說明
port
**服務器要使用的端口號,建議配置為 “443”。
protocol
設置HTTP協議,保持缺省值即可。
keystoreFile
“server.jks”文件存放路徑,路徑和相對路徑均可。示例:cert/server.jks
keystorePass
“server.jks”的密碼。填寫 “keystorePass.txt”文件內的密碼。
須知:如果密碼中包含 “&”,請將其替換成 “&”,以免配置不成功。
示例:
如果keystorePass="Ix6 &APWgcHf72DMu",則修改為keystorePass="Ix6 &APWgcHf72DMu"。
clientAuth
是否要求所有的SSL客戶出示證書,對SSL客戶進行身份驗證,保持缺省值即可。
- 在Tomcat安裝目錄的 “server.xml”文件中找到如下參數:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
- 將 “Host name”改為證書綁定的域名。
完整配置如下(以 “www.domain.com”為例):
<Host name=" www.domain.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
- 修改完成後保存配置文件。
- 在Tomcat安裝目錄的 “server.xml”文件中找到如下參數:
- Tomcat8.5/9
- 在Tomcat安裝目錄的 “server.xml”文件中找到如下參數:
<!--<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" **Threads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/localhost-rsa.jks" type="RSA" /> </SSLHostConfig> </Connector> -->
- 找到以上參數,去掉<!- - 和 - ->這對注釋符。
- 配置證書相關參數,請根據表2修改參數的值。
修改以下參數的值:
certificateKeystoreFile="conf/localhost-rsa.jks"
新增以下參數:certificateKeystorePassword="證書密碼"
完整配置如下,其餘參數請根據實際情況進行修改:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" **Threads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="cert/server.jks" certificateKeystorePassword="證書密碼" type="RSA" /> </SSLHostConfig> </Connector>
須知:不要直接拷貝所有配置,修改 “certificateKeystoreFile”和新增 “certificateKeystorePassword”參數即可,其它參數請根據自己的實際情況修改。
表2參數說明(二) 參數
參數說明
port
**服務器要使用的端口號,建議配置為 “443”。
protocol
設置Http協議,保持缺省值即可。
certificateKeystoreFile
“server.jks”文件存放路徑,路徑和相對路徑均可。示例:cert/server.jks
certificateKeystorePassword
“server.jks”的密碼。填寫 “keystorePass.txt”文件內的密碼。
須知:如果密碼中包含 “&”,請將其替換成 “&”,以免配置不成功。
示例:
如果certificateKeystorePassword="Ix6 &APWgcHf72DMu",則修改為certificateKeystorePassword="Ix6 &APWgcHf72DMu"。
- 在Tomcat安裝目錄的 “server.xml”文件中找到如下參數:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
- 將 “Host name”改為證書綁定的域名。
完整配置如下(以 “www.domain.com”為例):
<Host name=" www.domain.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
- 修改完成後保存配置文件。
- 在Tomcat安裝目錄的 “server.xml”文件中找到如下參數:
步驟四:重啟Tomcat
在Tomcat bin目錄下執行 ./shutdown.sh 命令停止Tomcat服務;
等待10秒後,再執行 ./startup.sh 命令(若進程被守護進程自動拉起,則無需手動啟動),啟動Tomcat服務。
效果驗證
部署成功後,可在瀏覽器的地址欄中輸入 “http://域名”,按 “Enter”。
如果瀏覽器地址欄顯示鎖標識,則說明證書安裝成功。