一、操作場(chǎng)景本文檔指導(dǎo)您如何在 Tomcat 服務(wù)器中安裝 JKS 格式的 SSL 證書。
前提條件已準(zhǔn)備遠(yuǎn)程登錄工具,例如 PuTTY 或者 Xshell(建議從官方網(wǎng)站獲取最新版本)。
已在當(dāng)前服務(wù)器中安裝配置 Tomcat 服務(wù)。
安裝 SSL 證書前需準(zhǔn)備的數(shù)據(jù)如下:(需要有網(wǎng)站服務(wù)器登陸權(quán)限)
二、操作步驟1.下載獲取證書證書下載類型選擇 Tomcat,保存證書文件包到本地目錄。 解壓縮后,可獲得相關(guān)類型的證書文件。
test.com.jks jks格式證書文件
Readme.txt 私鑰密碼文件
2.部署證書① 使用 Xshell登錄 Tomcat 服務(wù)器。將已獲取到的 test.com.jks 證書文件上傳到服務(wù)器合適目錄保存。
② 編輯在Tomcat/conf 目錄下的 server.xml 文件。開啟配置如下內(nèi)容:
<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"/>
配置文件的主要參數(shù)說(shuō)明如下:
--keystoreFile:密鑰庫(kù)文件的存放位置,可以指定絕對(duì)路徑,也可以指定相對(duì)于 <CATALINA_HOME> (Tomcat 安裝目錄)環(huán)境變量的相對(duì)路徑。如果此項(xiàng)沒(méi)有設(shè)定,默認(rèn)情況下,Tomcat 將從當(dāng)前操作系統(tǒng)用戶的用戶目錄下讀取名為 “.keystore” 的文件。
--keystorePass:密鑰庫(kù)密碼,指定 keystore 的密碼。申請(qǐng)證書時(shí)若設(shè)置了私鑰密碼,請(qǐng)?zhí)顚懰借€密碼;若申請(qǐng)證書時(shí)未設(shè)置私鑰密碼,請(qǐng)?zhí)顚?Tomcat 文件夾中 keystorePass.txt 文件的密碼。
--clientAuth:如果設(shè)為 true,表示 Tomcat 要求所有的 SSL 客戶出示安全證書,對(duì) SSL 客戶進(jìn)行身份驗(yàn)證,一般不修改,不配置開啟。
詳細(xì) server.xml 文件請(qǐng)參考如下內(nèi)容:
注意:不建議您直接復(fù)制 server.xml 文件內(nèi)容,避免格式有誤,直接啟用對(duì)應(yīng)配置參數(shù)。
<?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>
③ 檢查配置,執(zhí)行以下命令,確認(rèn)配置是否存在問(wèn)題。若存在,請(qǐng)您重新配置或者根據(jù)提示修改存在問(wèn)題。若不存在,請(qǐng)執(zhí)行下一步。
./configtest.sh
④ 在 Tomcat 安裝目錄 bin 目錄下(例如:/Tomcat/bin)依次執(zhí)行以下命令,重啟服務(wù)。
./shutdown.sh (關(guān)閉 Tomcat 服務(wù))
./startup.sh (啟動(dòng) Tomcat 服務(wù))
⑤ 若啟動(dòng)成功,即可使用 https://yourdomain 進(jìn)行訪問(wèn)(以實(shí)際網(wǎng)站地址訪問(wèn));如果瀏覽器地址欄顯示安全標(biāo)識(shí),則說(shuō)明證書安裝成功。如下圖所示:
附:HTTP 自動(dòng)跳轉(zhuǎn) HTTPS 的安全配置(可選)如果您需要將 HTTP 請(qǐng)求自動(dòng)重定向到 HTTPS,您可以通過(guò)以下操作設(shè)置:
1. 編輯 Tomcat 安裝目錄 conf 目錄下(例如:/Tomcat/conf)的 web.xml 文件,并找到 </welcome-file-list> 標(biāo)簽。
2. 請(qǐng)?jiān)诮Y(jié)束標(biāo)簽 </welcome-file-list> 后面換行,并添加以下內(nèi)容:
<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 參數(shù)修改為 SSL 的 connector 的端口,即443端口。如下所示:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
說(shuō)明:此修改操作可將非 SSL 的 connector 跳轉(zhuǎn)到 SSL 的 connector 中。
4. 執(zhí)行以下命令,確認(rèn)配置是否存在問(wèn)題。
./configtest.sh
若存在,請(qǐng)您重新配置或者根據(jù)提示修改存在問(wèn)題。若不存在,請(qǐng)執(zhí)行下一步。
5. 在 Tomcat 安裝目錄 /bin 目錄下(例如:/Tomcat/bin)執(zhí)行以下命令,關(guān)閉 Tomcat 服務(wù)后重新啟動(dòng)。
./shutdown.sh
./startup.sh
啟動(dòng)成功,即可使用 https://yourdomain 進(jìn)行訪問(wèn)(以實(shí)際網(wǎng)站地址訪問(wèn));如果瀏覽器地址欄顯示安全標(biāo)識(shí),則說(shuō)明證書安裝成功。如下圖所示: