在CentOS系统下的Tomcat8.5或9安装SSL证书

更新时间: 2023-08-24 16:09:25

您可以在CentOS系统下的Tomcat服务器安装SSL证书,实现通过HTTPS安全访问Web服务。本文介绍如何CentOS系统下Tomcat 8.5或9安装SSL证书。

环境准备

  • 操作系统:CentOS 7.6 64位

  • Web服务器:Tomcat 8.5或9

说明

Tomcat服务器需要提前安装JDK环境变量,请前往Tomcat官网查看推荐的JDK兼容配置。

前提条件

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

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

步骤一:下载SSL证书

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

  2. 在左侧导航栏,单击SSL 证书

  3. SSL 证书页面,定位到目标证书,在操作列,单击下载

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

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

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

    CSR生成方式

    证书压缩包包含的文件

    系统生成选择已有的CSR

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

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

      重要

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

    手动填写

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

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

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

  1. 将解压后的证书文件和密码文件上传到Tomcat服务器的conf目录。

    说明

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

  2. 进入tomcat安装根目录,执行以下命令,打开server.xml文件。

    vim ./conf/server.xml 
  3. 在server.xml文件中,定位到以下配置项,按照配置示例进行配置。

    • 配置项一:

      image..png

      配置示例:

      <Connector port="80" protocol="HTTP/1.1" #将Connector port修改为80
                     connectionTimeout="20000"
                     redirectPort="443"  #将redirectPort修改为SSL默认端口443,让HTTPS请求转发到443端口。
                     maxParameterCount="1000"
                     />
    • 配置项二。

      image..png

      配置示例(需去掉<!- - 和 - ->注释符):

      <Connector port="443"   #将Tomcat中默认的HTTPS端口修改为443。8443端口不可通过域名直接访问、需要在域名后加上端口号。
                              #443端口是HTTPS的默认端口,可通过域名直接访问,无需在域名后加端口号。
                     protocol="org.apache.coyote.http11.Http11NioProtocol" #Connector port有两种运行模式NIO和APR,请选择NIO模式。
                     maxThreads="150" SSLEnabled="true"
                     maxParameterCount="1000"
                     >
              <SSLHostConfig>
                      <Certificate certificateKeystoreFile="conf/xxx.pfx" #修改为证书文件路径
                                   certificateKeystorePassword="xxxxxx" #填写证书文件密码。
                               type="RSA" />
              </SSLHostConfig>
      </Connector>
    • 配置项三:

      image..png

      配置示例(需去掉<!- - 和 - ->注释符):

      <Connector protocol="AJP/1.3"
                     address="::1"
                     port="8009"
                     redirectPort="443" ##将redirectPort修改为443,让HTTPS请求转发到443端口。
                     maxParameterCount="1000"
                     />
  4. 可选:在/conf/web.xml文件,配置HTTP请求自动跳转HTTPS。

    1. 进入tomcat安装根目录,执行以下命令,打开web.xml文件。

      vim ./conf/web.xml 
    2. 在web.xml文件最底部添加以下配置项。

      <security-constraint> 
               <web-resource-collection > 
                    <web-resource-name >SSL</web-resource-name>  
                    <url-pattern>/*</url-pattern> 
             </web-resource-collection> 
             <user-data-constraint> 
                          <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
             </user-data-constraint> 
          </security-constraint>
  5. 进入Tomcat的bin目录,执行以下命令,停止Tomcat并重启。

    ./shutdown.sh #停止Tomcat服务
    ./startup.sh #重启Tomcat服务

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

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

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

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

image..png
阿里云首页 数字证书管理服务 相关技术圈