在JBoss服务器安装SSL证书

您可以在JBoss服务器上安装SSL证书,实现通过HTTPS安全访问Web服务。本文介绍如何为JBoss服务器安装SSL证书。

重要

本文以CentOS操作系统、jboss-as-7.1.1.Final为例介绍。不同版本的操作系统或JBoss服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务

前提条件

  • 已通过数字证书管理服务控制台签发证书。具体操作,请参见购买SSL证书提交证书申请

  • SSL证书绑定的域名已完成DNS解析,即您的域名与主机IP地址相互映射。您可以通过DNS验证证书工具,检测域名DNS解析是否生效。具体操作,请参见DNS生效验证

  • 已在Web服务器开放443端口(HTTPS通信的标准端口)。

    如果您使用的是阿里云ECS服务器,请确保已经在安全组规则入方向添加TCP 443端口。具体操作,请参见添加安全组规则

步骤一:下载SSL证书

  1. 登录数字证书管理服务控制台

  2. 在左侧导航栏,选择证书管理 > SSL证书管理

  3. SSL证书管理页面,定位到目标证书,在操作列,单击更多,然后选择下载页签。

  4. 服务器类型为JKS的操作列,单击下载

  5. 解压缩已下载的SSL证书压缩包。

    根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同,具体如下表所示。CSR

    CSR生成方式

    证书压缩包包含的文件

    系统生成选择已有的CSR

    • 证书文件(JKS格式):默认以证书ID_证书绑定域名命名。

    • 密码文件(TXT格式):默认以证书格式-password命名

      重要

      每次下载证书时都会产生新的密码,该密码仅匹配本次下载的证书文件。

    手动填写

    • 如果您填写的是通过数字证书管理服务控制台创建的CSR,下载后包含的证书文件与系统生成的一致。

    • 如果您填写的不是通过数字证书管理服务控制台创建的CSR,下载后只包括证书文件(PEM格式),不包含证书密码或私钥文件。您可以通过证书工具,将证书文件和您持有的证书密码或私钥文件转换成所需格式。转换证书格式的具体操作,请参见证书格式转换

步骤二:在JBoss服务器安装SSL证书

  1. 执行以下命令,在JBoss的standalone/configuration目录下,创建一个用于存放证书的cert目录。

  2. mkdir cert #创建证书目录,命名为cert。
  3. 将证书文件上传至cert目录。

    说明

    您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTy、Xshell或WindSCP等。

    如果您使用的阿里云云服务器 ECS,上传文件具体操作,请参见上传或下载文件(Windows)上传文件到Linux云服务器

  4. 打开JBoss配置文件standalone.xml,定位到以下参数,参考注释修改与证书相关的配置。

  5. <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>
  6. 进入JBoss目录中的bin目录,执行以下命令,重启JBoss服务器。

    sh standalone.sh &

步骤三:验证SSL是否安装成功

证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。

https://yourdomain   #需要将yourdomain替换成证书绑定的域名。

如果网页地址栏出现小锁标志,表示证书已经安装成功。

image.png

相关文档

如何解决SSL证书部署后未生效或网站显示不安全