您可以在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替换成证书绑定的域名。
如果网页地址栏出现小锁标志,表示证书已经安装成功。