在GlassFish服务器安装SSL证书

本文介绍如何在GlassFish服务器配置SSL证书,具体包括下载和上传证书文件,在GlassFish上配置证书文件、证书链和证书密钥等参数,以及安装证书后结果的验证。成功配置SSL证书后,您将能够通过HTTPS加密通道安全访问GlassFish服务器,确保数据传输的安全性。

重要

本文以Linux操作系统、glassfish-4.1.2-web中默认domain1容器为例介绍。不同的操作系统或GlassFish服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务

前提条件

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

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

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

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

步骤一:下载SSL证书

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

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

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

  4. 服务器类型其他操作列,单击下载

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

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

    CSR生成方式

    证书压缩包包含的文件

    系统生成选择已有的CSR

    • 证书文件(PEM格式):默认以证书ID_证书绑定域名命名。PEM格式的证书文件是采用Base64编码的文本文件。

    • 私钥文件(KEY格式):默认以证书绑定域名命名。

    手动填写

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

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

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

  1. 在GlassFish安装目录下创建一个用于存放证书的目录。

    1. 进入glassfish安装目录。

      本示例glassfish4安装在home路径下,请您根据实际情况调整。

      cd /home/glassfish4 
    2. 创建证书目录,命名为cert。

      mkdir cert
  2. 将证书文件和私钥文件上传到cert目录。

    说明

    您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTy、Xshell或WinSCP等。如果您使用的阿里云云服务器 ECS,上传文件具体操作,请参见上传或下载文件(Windows)上传文件到Linux云服务器

  3. 在cert目录下,执行openssl命令,将下载的PEM格式的证书转换为PKCS12格式,并修改密码为changeit,命名为mycert.p12,别名为s1as。

    说明

    domain_name.pem与domain_name.key需分别替换为实际的证书文件和证书私钥文件。

    changeit是GlassFish服务器中自带的证书的默认密码,如果您修改过,请使用实际的证书密码。

    openssl pkcs12 -export -in domain_name.pem -inkey domain_name.key -out mycert.p12 -passout pass:changeit -name s1as
  4. 在cert目录下,执行keytool命令,将mycert.p12转换为JKS格式,命名为keystore.jks,别名为s1as。

    keytool -importkeystore -destkeystore keystore.jks -srckeystore mycert.p12 -srcstoretype PKCS12 -alias s1as

    执行keytool命令后,会提示设置keystore.jks密码和输入原mycert.p12密码,均为changeit。

  5. 在cert目录下,执行keytool命令,将下载的PEM格式的证书转换为JKS格式,命名为cacerts.jks,别名为s1as。

    domain_name.pem替换为实际的证书文件。

    keytool -importcert -trustcacerts -destkeystore cacerts.jks -file domain_name.pem -alias s1as

    执行keytool命令后,会提示设置cacerts.jks密码,您需设置为changeit。

  6. 在cert目录下,执行以下命令,替换/home/glassfish4/glassfish/domains/domain1/config目录下的cacerts.jkskeystore.jks文件

    • 替换cacerts.jks

      cp ./cacerts.jks /home/glassfish4/glassfish/domains/domain1/config
    • 替换keystore.jks

      cp ./keystore.jks /home/glassfish4/glassfish/domains/domain1/config
  7. 编辑/home/glassfish4/glassfish/domains/domain1/config/domain.xml配置文件,修改端口号。

    定位到如下图所示network-listeners位置,并按照下述示例修改端口号,修改时请注意80、443的占用情况。

    image.png

    <network-listeners>
              <network-listener protocol="http-listener-1" port="80" name="http-listener-1" thread-pool="http-thread-pool" transport="tcp"></network-listener>
              <network-listener protocol="http-listener-2" port="443" name="http-listener-2" thread-pool="http-thread-pool" transport="tcp"></network-listener>
              <network-listener protocol="admin-listener" port="4848" name="admin-listener" thread-pool="admin-thread-pool" transport="tcp"></network-listener>
     </network-listeners>
  8. 进入/home/glassfish4/glassfish/bin目录,执行如下命令,重启服务器。

    ./asadmin restart-domain domain1

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

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

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

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

image.png