跳至主要内容

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

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

說明

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

取得憑證

  1. 我們為您簽發憑證後,將會核發憑證檔案(.zip)壓縮格式,壓縮包內有四個資料夾,分別對應四種憑證格式:Tomcat、Nginx、IIS、Apache;本文件使用 JKS 格式進行安裝,使用 Tomcat 資料夾內的憑證。

  2. Tomcat 資料夾中將包含三個檔案:

  • domain_com.jks 憑證檔案
  • domain_com.key 私鑰檔案
  • password.txt 憑證密碼檔案

安裝 SSL 憑證

  1. 將已取得的 domain_com.jks 憑證檔案從本機目錄複製到 Tomcat 伺服器的 /usr/tomcat9.0.13/conf 目錄下。
  • 不同版本的 Tomcat 路徑名稱會有些許差異,請前往您的服務對應路徑進行操作。
  • 部分使用者的 JDK 版本若與我們轉換 JKS 檔案環境的 JDK 版本不同時,可能需要手動於目前使用環境轉換 JKS 檔案。

請參考下方指令進行 JKS 檔案轉換,請注意替換對應參數:

keytool -importkeystore -srckeystore domain.pfx -srcstoretype pkcs12 -srcstorepass pfxpassword -destkeystore domain.jks -deststoretype jks -deststorepass pfxpassword

請替換 domain.pfx(IIS 資料夾中的 pfx 檔案)、pfxpassword(pfx 檔案的密碼)、domain.jks(轉換後 jks 檔案的名稱)、pfxpassword(PFX 檔案的密碼)

  1. 編輯 /usr/tomcat9.0.13/conf 目錄下的 server.xml 檔案。 在 server.xml 檔案中新增 Connector 屬性,內容如下:
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/usr/tomcat9.0.13/conf/domain_com.pfx" <! -- 證書的路徑 -->
keystorePass="證書密碼" <! -- 請替換為 password.txt 密碼檔案中的內容 -->
clientAuth="false"/>
  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 服务器