跳至主要内容

Tomcat 伺服器安裝 SSL 憑證(PFX 格式)

您可以透過將 SSL 憑證安裝到 Tomcat 伺服器,讓 Tomcat 伺服器支援 HTTPS 安全存取。本文介紹如何在 Tomcat 伺服器中安裝 SSL 憑證。

說明

本文件 Tomcat 版本以 tomcat9.0.13 為例。 安裝前請確認 443 連接埠未被占用,若 443 連接埠已使用,請在安裝憑證時綁定其他連接埠。

取得憑證

  1. 我們為您簽發憑證後,將會發給您憑證檔案(.zip)壓縮格式,壓縮包中有四個資料夾,分別對應四種憑證格式:Tomcat、Nginx、IIS、Apache;本文件使用 PFX 格式進行安裝,因此需要用到 IIS 資料夾內的憑證。 (不同資料夾只是檔案格式不同,使用其他資料夾的檔案並不會衝突)
  2. IIS 資料夾中將包含三個檔案:
  • domain_com.pfx 憑證檔案
  • domain_com.key 私鑰檔案
  • password.txt 憑證密碼檔案

安裝 SSL 憑證

  1. 將已取得的 domain_com.pfx 憑證檔案從本機目錄複製到 Tomcat 伺服器的 /usr/tomcat9.0.13/conf 目錄下。 不同版本的 Tomcat 路徑名稱會有些許差異,請前往您的服務對應路徑進行操作。
  2. 編輯位於 /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"/>
  1. 儲存設定檔,在 bin 目錄下執行以下指令,確認設定是否正確。
./configtest.sh
  1. 重新啟動 Tomcat,在 bin 目錄下執行以下指令:
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器

測試 SSL 證書

在瀏覽器網址列輸入已繫結 SSL 證書的網域名稱,測試您的 SSL 證書是否安裝成功。若安裝成功,瀏覽器網址列將會顯示安全鎖標示,點擊即可檢視證書資訊。

SSL 證書效果

HTTP 自動跳轉 HTTPS 的安全設定(選用)

若您需要將 HTTP 請求自動重新導向至 HTTPS,可透過以下步驟設定:

  1. 編輯 /usr/tomcat9.0.13/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>
  1. 編輯 /usr/tomcat9.0.13/conf 目錄下的 server.xml 檔案,將 redirectPort 參數修改為 SSL 的 connector 的連接埠,即 443 連接埠。如下所示:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
  1. 儲存設定檔,在 bin 目錄下執行以下命令,確認設定是否正確。
./configtest.sh
  1. 如果設定沒有問題,重新啟動 Tomcat 伺服器即可使用網域名稱存取,實現 HTTP 自動跳轉至 HTTPS。
./shutdown.sh  #关闭 Tomcat 服务器
./startup.sh #启动 Tomcat 服务器