反饋已提交

網絡繁忙

配置 SSL 憑證實現 HTTPS 存取

本文為第三方解決方案或非產品相關操作指南,僅提供給具備自主開發能力的使用者使用。

若您的場景方案與文檔不完全一致,請移步帆軟社群提問:問答



1. 概述

啟動 HTTPS 協定需要使用有效的 SSL 憑證,憑證中包含的身分驗證資訊可幫助使用者進行加密通訊。

在單點登入認證系統中,憑證是很重要的一把鑰匙,用戶端與伺服器的交互安全靠的就是憑證。

本文僅介紹CentOS系統下Tomcat如何安裝SSL憑證,以滿足HTTPS存取的訴求。其他環境建議諮詢你的憑證籤發機構進行安裝。

2. 在Tomcat安裝SSL憑證

2.1 獲取憑證

在配置憑證前,首先需要申請憑證。

使用者需自行向 CA 廠商購買憑證,憑證認證一般都是由 VeriSign、GlobalSign 等國際公認的 CA 機構進行。

注:對於正式環境,不可使用 JDK 自帶的 keytool 工具生成憑證,會出現不安全提醒,導致工程嵌入第三方平台後無法存取。

2.2 上傳憑證

1)以管理者身分進入Tomcat安裝目錄,建立cert資料夾。

2)以管理者身分進入%Tomcat_HOME%/cert資料夾,將憑證檔案上傳到該資料夾。

注1:不同廠商的憑證格式不完全相同,不一定和下圖檔案格式相同。

注2:如有金鑰檔案,請也同步上傳到該位置。

2.3 配置server.xml檔案

1)以管理者身分進入%TOMCAT_HOME%/conf資料夾,使用正文編輯器開啟server.xml檔案。

2)在server.xml檔案中,找到以下配置塊:

<Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443" />

在該配置塊上方新增以下配置塊,請根據你的憑證地址、憑證格式和密碼,修改keystoreFile、keystoreType和keystorePass

  • keystoreFile 支援填寫絕對路徑或在 Tomcat 中的相對路徑。

  • Connector port為你後續存取時所佔的埠,請確定埠防火牆已開放,可正常存取。 如希望在存取時不新增埠,直接透過域名存取,請使用 HTTPS 的預設埠 443 。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
            keystoreFile="/path/to/your/keystore/file"
            keystoreType="your_keystore_type"
            keystorePass="your_keystore_password"
            clientAuth="false" sslProtocol="TLS" />

注1:不建議直接複製貼上上文程式碼,可自行找尋檔案中該配置庫,去除相關程式碼註釋,並修改憑證說明即可。

注2:上文程式碼範例中,憑證格式為.pfx格式。若憑證格式為.crt,需要微調程式碼,範例如下:

<Connector port="8443"  protocol="org.apache.coyote.http11.Http11NioProtocol"
              maxThreads="150" SSLEnabled="true" scheme="https">
 <SSLHostConfig sslProtocol="TLS">
        <Certificate certificateFile="/opt/ssl_file/server.crt" certificateKeyFile="/opt/ssl_file/server.key" certificateChainFile="/opt/ssl_file/root.crt" 
                         type="RSA"/>
</SSLHostConfig>
</Connector>

3)儲存並關閉server.xml檔案

2.4 確認web.xml檔案(可選)

如需配置HTTP請求自動跳轉HTTPS,可執行本節操作。

1)以管理者身分進入%TOMCAT_HOME%/conf資料夾,使用正文編輯器開啟web.xml檔案。

2)在web.xml檔案中,確認存在以下配置塊,並確認<transport-guarantee>標籤的值為CONFIDENTIAL即可:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Protected Context</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

3)儲存並關閉web.xml檔案。

2.5 重啟Tomcat

請參考 關閉或重啟FineReport工程 文檔,重啟Tomcat伺服器,以使配置生效。

2.6 效果預覽

使用瀏覽器存取https://your_domain:port,確定能夠成功存取,如果網頁地址欄出現小鎖標籤,表示憑證已經安裝成功。

  • your_domain是你的域名或IP地址。

  • 埠為2.3節配置的Connector port。

3. 注意事項

3.1 HTTPS 設定

Tomcat 配置 SSL 憑證實現 HTTPS 存取後,若要保證 Websocket 連結正常,需要配置 HTTPS 設定。

請先使用管理者帳號登入數據決策系統,查看「管理系統>系統管理>標準」中是否出現 HTTPS 設定項。

  • 不出現:說明 Websocket 連結已正確配置,無需修改。

  • 出現:說明 Websocket 連結未正常配置,請參考文檔修改:HTTPS配置WebSocket


3.2 無法遠端連結

問題描述

設計器 遠端連結 https 工程失敗。

報錯:invalid keystore format

原因分析

配置的 https 工程,憑證格式為 PKCS12 ,但設計器用戶端目前僅支援預設格式 jks 。

解決方案

在Tomcat資料夾下面建立一個key資料夾,將jks檔案格式的server.keystore放在裏面。

遠端連結的時候選擇key資料夾的server.keystore。


附件列表


主題: 部署集成
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉