您可以在Jetty伺服器上安裝SSL認證,實現通過HTTPS安全訪問Web服務。本文介紹如何為Jetty伺服器安裝SSL認證。
本文以Linux作業系統、jetty-distribution-9.4.51.v20230217為例介紹,不同版本的作業系統或Jetty伺服器,部署操作可能有所差異,如有問題,請聯絡商務經理進行諮詢。
前提條件
步驟一:下載SSL認證
登入數位憑證管理服務控制台。
在左側導覽列,選擇。
在SSL 憑證頁面,定位到目標認證,在操作列,單擊下載。
在伺服器類型為JKS的操作列,單擊下載。
解壓縮已下載的SSL認證壓縮包。
根據您在提交認證申請時選擇的CSR產生方式,解壓縮獲得的檔案不同,具體如下表所示。
CSR產生方式
認證壓縮包包含的檔案
系統產生
認證檔案(JKS格式):預設以認證ID_認證綁定網域名稱命名。
密碼檔案(TXT格式):預設以認證格式-password命名。
重要每次下載認證時都會產生新的密碼,該密碼僅匹配本次下載的認證檔案。
手動填寫
如果您填寫的是通過數位憑證管理服務控制台建立的CSR,下載後包含的認證檔案與系統產生的一致。
如果您填寫的不是通過數位憑證管理服務控制台建立的CSR,下載後只包括認證檔案(PEM格式),不包含認證密碼或私密金鑰檔案。您可以通過認證工具,將認證檔案和您持有的認證密碼或私密金鑰檔案轉換成所需格式。轉換認證格式的具體操作,請參見認證格式轉換。
步驟二:在Jetty伺服器安裝SSL認證
在Jetty的安裝目錄下建立一個用於存放認證的cert目錄。
執行以下命令,進入Jetty安裝目錄。
cd /usr/local/jetty #請您根據Jetty實際安裝目錄調整。
執行以下命令,建立cert目錄。
mkdir cert #建立認證目錄,命名為cert。
將認證檔案上傳至建立完成的cert目錄。
說明您可以使用遠程登入工具附帶的本地檔案上傳功能,上傳檔案。例如PuTTy、Xshell或WinSCP等。如果您使用的阿里雲Elastic Compute Service,上傳檔案具體操作,請參見上傳或下載檔案(Windows)或上傳檔案到Linux雲端服務器。
開啟Jetty設定檔jetty-ssl.xml和jetty-ssl-context.xml,修改與認證相關的配置。
執行以下命令,開啟jetty-ssl-context.xml設定檔。
vim /usr/local/jetty/etc/jetty-ssl-context.xml
在jetty-ssl-context.xml設定檔中,定位到以下參數,按照注釋修改。
說明在Jetty的一些舊版本中,認證相關配置參數可能在jetty-ssl.xml檔案中。
<!--認證檔案配置。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>
在jetty-ssl.xml設定檔中,定位到如下參數,修改HTTPS服務所使用的連接埠為443。
說明在Jetty的一些舊版本中,HTTPS服務連接埠配置可能在jetty-https.xml檔案中。
<Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="443" /></Set>
編輯Jetty安裝目錄下的start.ini檔案,並在末尾添加如下內容。
etc/jetty-ssl.xml etc/jetty-ssl-context.xml etc/jetty-https.xml
在Jetty安裝目錄下,執行如下命令,重啟Jetty。
./bin/jetty.sh restart
步驟三:驗證SSL是否安裝成功
認證安裝完成後,您可通過訪問認證的綁定網域名稱驗證該認證是否安裝成功。
https://yourdomain #需要將yourdomain替換成認證綁定的網域名稱。
如果網頁地址欄出現小鎖標誌,表示認證已經安裝成功。
如果出現Error 404,表示您的Jetty伺服器沒有web應用,並非Jetty伺服器未啟動成功。