环境

阿里云服务器、CentOS7系统、Tomcat9

申请免费证书

阿里云可申请一年的免费证书,申请证书教程链接为:https://help.aliyun.com/document_detail/98574.html?spm=a2c4g.11186623.6.600.1a2d7597CYqniO

安装SSL证书前提条件

  1. 已从阿里云SSL证书服务控制台下载Tomcat服务器证书(包含PFX格式证书文件和TXT格式密码文件)

  2. 申请SSL证书时绑定的域名已完成DNS解析、实现了该域名指向您Tomcat服务器的IP地址

  3. 域名解析设置完成后执行ping www.yourdomain.com命令,如果返回了您所设置解析的主机IP地址,说明解析成功

操作步骤

  1. 解压Tomcat证书

    每次下载证书都会产生新的密码,该密码仅匹配本次下载的证书。如果需要更新证书文件,同时也要更新匹配的密码

  2. 将下载的证书和密码文件拷贝到Tomcat的conf目录下

  3. 打开Tomcat/conf/server.xml,在server.xml文件中找到以下参数并进行修改

    ① 将Connector port修改为80,将redirectPort修改为SSL默认端口443,让HTTPS请求转发到443端口

    修改前:

    1
    2
    3
    <Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

    修改后:

    1
    2
    3
    <Connector port="80" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="443" />

    ② 将下面代码复制到server.xml中,certificateKeystoreFile代表证书文件的路径,certificateKeystorePassword为SSL证书的密码

    1
    2
    3
    4
    5
    6
    7
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
    <Certificate certificateKeystoreFile="/home/tomcat9/apache-tomcat-9.0.46/conf/证书名称"
    certificateKeystorePassword="证书密码"
    certificateKeystoreType="PKCS12" />
    </SSLHostConfig>
    </Connector>

    ③ 找到下面代码并修改

    修改前:

    1
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    修改后:

    1
    <Connector protocol="AJP/1.3" port="8009" redirectPort="443" secretRequired=""/>

    ④ 在web.xml文件最底部添加以下内容,实现HTTP自动跳转为HTTPS

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <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>
  4. 保存server.xml,重启Tomcat

结果

出现锁图标和https说明SSL证书已经安装成功

img