您可以在JBoss服務器上安裝SSL證書,實現通過HTTPS安全訪問Web服務。本文介紹如何為JBoss服務器安裝SSL證書。
本文以CentOS操作系統、jboss-as-7.1.1.Final為例介紹。不同版本的操作系統或JBoss服務器,部署操作可能有所差異,如有問題,請聯系產品技術專家進行咨詢,詳情請參見專家一對一服務。
前提條件
SSL證書綁定的域名已完成DNS解析,即您的域名與主機IP地址相互映射。您可以通過DNS驗證證書工具,檢測域名DNS解析是否生效。具體操作,請參見DNS生效驗證。
已在Web服務器開放443端口(HTTPS通信的標準端口)。
如果您使用的是阿里云ECS服務器,請確保已經在安全組規則入方向添加TCP 443端口。具體操作,請參見添加安全組規則。
步驟一:下載SSL證書
登錄數字證書管理服務控制臺。
在左側導航欄,選擇。
在SSL證書管理頁面,定位到目標證書,在操作列,單擊更多,然后選擇下載頁簽。
在服務器類型為JKS的操作列,單擊下載。
解壓縮已下載的SSL證書壓縮包。
根據您在提交證書申請時選擇的CSR生成方式,解壓縮獲得的文件不同,具體如下表所示。
CSR生成方式
證書壓縮包包含的文件
系統生成或選擇已有的CSR
證書文件(JKS格式):默認以證書ID_證書綁定域名命名。
密碼文件(TXT格式):默認以證書格式-password命名。
重要每次下載證書時都會產生新的密碼,該密碼僅匹配本次下載的證書文件。
手動填寫
如果您填寫的是通過數字證書管理服務控制臺創建的CSR,下載后包含的證書文件與系統生成的一致。
如果您填寫的不是通過數字證書管理服務控制臺創建的CSR,下載后只包括證書文件(PEM格式),不包含證書密碼或私鑰文件。您可以通過證書工具,將證書文件和您持有的證書密碼或私鑰文件轉換成所需格式。轉換證書格式的具體操作,請參見證書格式轉換。
步驟二:在JBoss服務器安裝SSL證書
執行以下命令,在JBoss的standalone/configuration目錄下,創建一個用于存放證書的cert目錄。
將證書文件上傳至cert目錄。
說明您可以使用遠程登錄工具附帶的本地文件上傳功能,上傳文件。例如PuTTy、Xshell或WindSCP等。
如果您使用的阿里云云服務器 ECS,上傳文件具體操作,請參見上傳或下載文件(Windows)或上傳文件到Linux云服務器。
打開JBoss配置文件standalone.xml,定位到以下參數,參考注釋修改與證書相關的配置。
進入JBoss目錄中的bin目錄,執行以下命令,重啟JBoss服務器。
sh standalone.sh &
mkdir cert #創建證書目錄,命名為cert。
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<!--配置證書密碼和證書路徑。
password填寫jks-password.txt中的證書密碼。
certificate-key-file填寫證書實際存放的位置。
-->
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl name="https" password="******" certificate-key-file="../standalone/configuration/cert/domain_name.jks"/>
</connector>
</subsystem>
<!--配置遠程訪問JBoss及HTTPS端口-->
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"></inet>
</interface>
<!--開啟遠程訪問-->
<interface name="public">
<inet-address value="${jboss.bind.address:0.0.0.0}"></inet>
</interface>
<interface name="unsecure">
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"></inet>
</interface>
</interfaces>
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"></socket>
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"></socket>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"></socket>
<socket-binding name="ajp" port="8009"></socket>
<!--修改http端口為80-->
<socket-binding name="http" port="80"></socket>
<!--修改https端口為443-->
<socket-binding name="https" port="443"></socket>
<socket-binding name="osgi-http" interface="management" port="8090"></socket>
<socket-binding name="remoting" port="4447"></socket>
<socket-binding name="txn-recovery-environment" port="4712"></socket>
<socket-binding name="txn-status-manager" port="4713"></socket>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25"></remote>
</outbound-socket-binding>
</socket-binding-group>
步驟三:驗證SSL是否安裝成功
證書安裝完成后,您可通過訪問證書的綁定域名驗證該證書是否安裝成功。
https://yourdomain #需要將yourdomain替換成證書綁定的域名。
如果網頁地址欄出現小鎖標志,表示證書已經安裝成功。