全部產品
Search
文件中心

Certificate Management Service:在Jetty伺服器安裝SSL認證

更新時間:Jun 30, 2024

您可以在Jetty伺服器上安裝SSL認證,實現通過HTTPS安全訪問Web服務。本文介紹如何為Jetty伺服器安裝SSL認證。

重要

本文以Linux作業系統、jetty-distribution-9.4.51.v20230217為例介紹,不同版本的作業系統或Jetty伺服器,部署操作可能有所差異,如有問題,請聯絡商務經理進行諮詢

前提條件

  • 已通過數位憑證管理服務控制台簽發認證。具體操作,請參見購買SSL認證提交認證申請

  • SSL認證綁定的網域名稱已完成DNS解析,即您的網域名稱與主機IP地址相互映射。您可以通過DNS驗證認證工具,檢測網域名稱DNS解析是否生效。具體操作,請參見DNS生效驗證

  • 已在Web伺服器開放443連接埠(HTTPS通訊的標準連接埠)。

    如果您使用的是阿里雲ECS伺服器,請確保已經在安全性群組規則入方向添加TCP 443連接埠。具體操作,請參見添加安全性群組規則

步驟一:下載SSL認證

  1. 登入數位憑證管理服務控制台

  2. 在左側導覽列,選擇認證管理 > SSL認證管理

  3. SSL 憑證頁面,定位到目標認證,在操作列,單擊下載

  4. 伺服器類型為JKS的操作列,單擊下載

  5. 解壓縮已下載的SSL認證壓縮包。

    根據您在提交認證申請時選擇的CSR產生方式,解壓縮獲得的檔案不同,具體如下表所示。in

    CSR產生方式

    認證壓縮包包含的檔案

    系統產生

    • 認證檔案(JKS格式):預設以認證ID_認證綁定網域名稱命名。

    • 密碼檔案(TXT格式):預設以認證格式-password命名

      重要

      每次下載認證時都會產生新的密碼,該密碼僅匹配本次下載的認證檔案。

    手動填寫

    • 如果您填寫的是通過數位憑證管理服務控制台建立的CSR,下載後包含的認證檔案與系統產生的一致。

    • 如果您填寫的不是通過數位憑證管理服務控制台建立的CSR,下載後只包括認證檔案(PEM格式),不包含認證密碼或私密金鑰檔案。您可以通過認證工具,將認證檔案和您持有的認證密碼或私密金鑰檔案轉換成所需格式。轉換認證格式的具體操作,請參見認證格式轉換

步驟二:在Jetty伺服器安裝SSL認證

  1. 在Jetty的安裝目錄下建立一個用於存放認證的cert目錄。

    1. 執行以下命令,進入Jetty安裝目錄。

      cd /usr/local/jetty #請您根據Jetty實際安裝目錄調整。
    2. 執行以下命令,建立cert目錄。

      mkdir cert #建立認證目錄,命名為cert。
  2. 將認證檔案上傳至建立完成的cert目錄。

    說明

    您可以使用遠程登入工具附帶的本地檔案上傳功能,上傳檔案。例如PuTTy、Xshell或WinSCP等。如果您使用的阿里雲Elastic Compute Service,上傳檔案具體操作,請參見上傳或下載檔案(Windows)上傳檔案到Linux雲端服務器

  3. 開啟Jetty設定檔jetty-ssl.xmljetty-ssl-context.xml,修改與認證相關的配置。

    1. 執行以下命令,開啟jetty-ssl-context.xml設定檔。

      vim /usr/local/jetty/etc/jetty-ssl-context.xml
    2. 在jetty-ssl-context.xml設定檔中,定位到以下參數,按照注釋修改。

      說明

      在Jetty的一些舊版本中,認證相關配置參數可能在jetty-ssl.xml檔案中。

      image.png

      <!--認證檔案配置。cert/domain_name.jks需替換為真實的憑證路徑-->
      <Set name="KeyStorePath">
          <Property name="jetty.sslContext.keyStoreAbsolutePath">
            <Default>
              <Property name="jetty.base" default="." />/<Property name="jetty.sslContext.keyStorePath" deprecated="jetty.keystore" default="cert/domain_name.jks"/>
            </Default>
          </Property>
        </Set>
        
        <!--認證密碼配置。default請填寫jks-password.txt中的認證密碼-->
        <Set name="KeyStorePassword"><Property name="jetty.sslContext.keyStorePassword" deprecated="jetty.keystore.password" default="zf****c4"/></Set>
        
        <!--認證密鑰庫類型配置。default請填寫認證密鑰庫類型。JKS格式的認證,密鑰庫類型為JKS。-->
        <Set name="KeyStoreType"><Property name="jetty.sslContext.keyStoreType" default="JKS"/></Set>
        <Set name="KeyStoreProvider"><Property name="jetty.sslContext.keyStoreProvider"/></Set>
        
        <!--default請填寫jks-password.txt中的認證密碼-->
        <Set name="KeyManagerPassword"><Property name="jetty.sslContext.keyManagerPassword" deprecated="jetty.keymanager.password" default="zf****c4"/></Set>
        
        <!--cert/domain_name.jks需替換為真實的憑證路徑-->
        <Set name="TrustStorePath">
          <Property name="jetty.sslContext.trustStoreAbsolutePath">
            <Default>
              <Property name="jetty.base" default="." />/<Property name="jetty.sslContext.trustStorePath" deprecated="jetty.truststore" default="cert/domain_name.jks"/>
            </Default>
          </Property>
        </Set>
        <!--可選。設定TLS協議的加密套件。以下為配置樣本,請您自行評估是否需要配置-->
        <Set name="ExcludeCipherSuites">
          <Array type="String">
            <Item>SSL_RSA_WITH_DES_CBC_SHA</Item>
            <Item>SSL_DHE_RSA_WITH_DES_CBC_SHA</Item>
            <Item>SSL_DHE_DSS_WITH_DES_CBC_SHA</Item>
            <Item>SSL_RSA_EXPORT_WITH_RC4_40_MD5</Item>
            <Item>SSL_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
            <Item>SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA</Item>
            <Item>SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA</Item>
          </Array>
        </Set>
    3. 在jetty-ssl.xml設定檔中,定位到如下參數,修改HTTPS服務所使用的連接埠為443。

      說明

      在Jetty的一些舊版本中,HTTPS服務連接埠配置可能在jetty-https.xml檔案中。

       <Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="443" /></Set>
  4. 編輯Jetty安裝目錄下的start.ini檔案,並在末尾添加如下內容。

    etc/jetty-ssl.xml
    etc/jetty-ssl-context.xml
    etc/jetty-https.xml
  5. 在Jetty安裝目錄下,執行如下命令,重啟Jetty。

    ./bin/jetty.sh restart

步驟三:驗證SSL是否安裝成功

認證安裝完成後,您可通過訪問認證的綁定網域名稱驗證該認證是否安裝成功。

https://yourdomain   #需要將yourdomain替換成認證綁定的網域名稱。

如果網頁地址欄出現小鎖標誌,表示認證已經安裝成功。

image.png

說明

如果出現Error 404,表示您的Jetty伺服器沒有web應用,並非Jetty伺服器未啟動成功。

相關文檔

如何解決SSL認證部署後未生效或網站顯示不安全