一、操作場景本文檔指導您如何在 Tomcat 服務器中安裝 JKS 格式的 SSL 證書。
前提條件已準備遠程登錄工具,例如 PuTTY 或者 Xshell(建議從官方網站獲取最新版本)。
已在當前服務器中安裝配置 Tomcat 服務。
安裝 SSL 證書前需準備的數據如下:(需要有網站服務器登陸權限)
二、操作步驟1.下載獲取證書證書下載類型選擇 Tomcat,保存證書文件包到本地目錄。 解壓縮后,可獲得相關類型的證書文件。
test.com.jks jks格式證書文件
Readme.txt 私鑰密碼文件
2.部署證書① 使用 Xshell登錄 Tomcat 服務器。將已獲取到的 test.com.jks 證書文件上傳到服務器合適目錄保存。
② 編輯在Tomcat/conf 目錄下的 server.xml 文件。開啟配置如下內容:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
#test.com,jks證書保存的路徑
keystoreFile="test.com.jks"
#jks證書密碼,readme.txt中密碼
keystorePass="******"
clientAuth="false"/>
配置文件的主要參數說明如下:
--keystoreFile:密鑰庫文件的存放位置,可以指定絕對路徑,也可以指定相對于 <CATALINA_HOME> (Tomcat 安裝目錄)環境變量的相對路徑。如果此項沒有設定,默認情況下,Tomcat 將從當前操作系統用戶的用戶目錄下讀取名為 “.keystore” 的文件。
--keystorePass:密鑰庫密碼,指定 keystore 的密碼。申請證書時若設置了私鑰密碼,請填寫私鑰密碼;若申請證書時未設置私鑰密碼,請填寫 Tomcat 文件夾中 keystorePass.txt 文件的密碼。
--clientAuth:如果設為 true,表示 Tomcat 要求所有的 SSL 客戶出示安全證書,對 SSL 客戶進行身份驗證,一般不修改,不配置開啟。
詳細 server.xml 文件請參考如下內容:
注意:不建議您直接復制 server.xml 文件內容,避免格式有誤,直接啟用對應配置參數。
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false"
keystoreFile="Tomcat 安裝目錄/conf/cloud.tencent.com.jks"
keystorePass="******" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="cloud.tencent.com">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="cloud.tencent.com" appBase="webapps"
unpackWARs="true" autoDeploy="true" >
<Context path="" docBase ="Knews" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
③ 檢查配置,執行以下命令,確認配置是否存在問題。若存在,請您重新配置或者根據提示修改存在問題。若不存在,請執行下一步。
./configtest.sh
④ 在 Tomcat 安裝目錄 bin 目錄下(例如:/Tomcat/bin)依次執行以下命令,重啟服務。
./shutdown.sh (關閉 Tomcat 服務)
./startup.sh (啟動 Tomcat 服務)
⑤ 若啟動成功,即可使用 https://yourdomain 進行訪問(以實際網站地址訪問);如果瀏覽器地址欄顯示安全標識,則說明證書安裝成功。如下圖所示:
附:HTTP 自動跳轉 HTTPS 的安全配置(可選)如果您需要將 HTTP 請求自動重定向到 HTTPS,您可以通過以下操作設置:
1. 編輯 Tomcat 安裝目錄 conf 目錄下(例如:/Tomcat/conf)的 web.xml 文件,并找到 </welcome-file-list> 標簽。
2. 請在結束標簽 </welcome-file-list> 后面換行,并添加以下內容:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection>
<web-resource-name>SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
3. 編輯 Tomcat 安裝目錄 conf 目錄下(例如:/Tomcat/conf)的 server.xml 文件,將 redirectPort 參數修改為 SSL 的 connector 的端口,即443端口。如下所示:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
說明:此修改操作可將非 SSL 的 connector 跳轉到 SSL 的 connector 中。
4. 執行以下命令,確認配置是否存在問題。
./configtest.sh
若存在,請您重新配置或者根據提示修改存在問題。若不存在,請執行下一步。
5. 在 Tomcat 安裝目錄 /bin 目錄下(例如:/Tomcat/bin)執行以下命令,關閉 Tomcat 服務后重新啟動。
./shutdown.sh
./startup.sh
啟動成功,即可使用 https://yourdomain 進行訪問(以實際網站地址訪問);如果瀏覽器地址欄顯示安全標識,則說明證書安裝成功。如下圖所示: