Tomcat 伺服器安裝 SSL 憑證(PFX 格式)
您可以透過將 SSL 憑證安裝到 Tomcat 伺服器,讓 Tomcat 伺服器支援 HTTPS 安全存取。本文介紹如何在 Tomcat 伺服器中安裝 SSL 憑證。
說明
本文件 Tomcat 版本以 tomcat9.0.13 為例。
安裝前請確認 443 連接埠未被占用,若 443 連接埠已使用,請在安裝憑證時綁定其他連接埠。
取得憑證
- 我們為您簽發憑證後,將會發給您憑證檔案(.zip)壓縮格式,壓縮包中有四個資料夾,分別對應四種憑證格式:Tomcat、Nginx、IIS、Apache;本文件使用 PFX 格式進行安裝,因此需要用到 IIS 資料夾內的憑證。 (不同資料夾只是檔案格式不同,使用其他資料夾的檔案並不會衝突)
- IIS 資料夾中將包含三個檔案:
domain_com.pfx憑證檔案domain_com.key私鑰檔案password.txt憑證密碼檔案
安裝 SSL 憑證
- 將已取得的
domain_com.pfx憑證檔案從本機目錄複製到 Tomcat 伺服器的/usr/tomcat9.0.13/conf目錄下。 不同版本的 Tomcat 路徑名稱會有些許差異,請前往您的服務對應路徑進行操作。 - 編輯位於
/usr/tomcat9.0.13/conf目錄下的server.xml檔案。 在server.xml檔案中新增Connector屬性,內容如下:
<Connector port="443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- 證書的路徑 -->
keystoreType="PKCS12"
keystorePass="證書密碼" <! -- 請替換為 password.txt 密碼檔案中的內容 -->
clientAuth="false"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
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"/>
- 儲存設定檔,在
bin目錄下執行以下指令,確認設定是否正確。
./configtest.sh
- 重新啟動 Tomcat,在
bin目錄下執行以下指令:
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器
測試 SSL 證書
在瀏覽器網址列輸入已繫結 SSL 證書的網域名稱,測試您的 SSL 證書是否安裝成功。若安裝成功,瀏覽器網址列將會顯示安全鎖標示,點擊即可檢視證書資訊。

HTTP 自動跳轉 HTTPS 的安全設定(選用)
若您需要將 HTTP 請求自動重新導向至 HTTPS,可透過以下步驟設定:
- 編輯
/usr/tomcat9.0.13/conf目錄下的web.xml檔案,找到</welcome-file-list>標籤。 - 請在結束標籤
</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>
- 編輯
/usr/tomcat9.0.13/conf目錄下的server.xml檔案,將redirectPort參數修改為 SSL 的connector的連接埠,即 443 連接埠。如下所示:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
- 儲存設定檔,在
bin目錄下執行以下命令,確認設定是否正確。
./configtest.sh
- 如果設定沒有問題,重新啟動 Tomcat 伺服器即可使用網域名稱存取,實現 HTTP 自動跳轉至 HTTPS。
./shutdown.sh #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器