tomcat 配置阿里云 SSL 证书实现 https 访问

前言 最近项目需要做一些软件测评、软件安全测试等内容,然后就要求系统将 http 改成 https,这次就针对 https 配置做一个记录。

一、申请阿里云 SSL 证书

1、此处需要自己登录阿里云官网进行申请
	申请SSL证书时绑定的域名已完成DNS解析、实现了该域名指向您Tomcat服务器的IP地址。
	
	2、域名解析设置完成后执行ping www.yourdomain.com命令,
	如果返回了您所设置解析的主机IP地址,说明解析成功

完成以上两点之后就可以开始往下进行配置了

二、tomcat 配置 阿里云 SSL 证书

1、从阿里云 SSL 证书服务控制台下载 Tomcat 服务器证书

2、解压Tomcat 证书

3、在 Tomcat 安装目录下新建 cert 目录,将下载的证书和密码文件拷贝到 cert 目录下

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

此处我这边用的 tomcat 版本是 8.5版本的,所以需要按照下面这个格式来(包括8.5及以上版本,8.5 之前的版本格式贴在文章最后)
<Connector port="8443"
          protocol="org.apache.coyote.http11.Http11NioProtocol"
          maxThreads="150"
          SSLEnabled="true">
        <SSLHostConfig>
            <Certificate       certificateKeystoreFile="cert/keystore.pfx"
             certificateKeystorePassword="XXXXXXX"
                         certificateKeystoreType="PKCS12" />

    #找到以上参数,去掉<!- - 和 - ->这对注释符并修改为如下参数:
    <Connector port="443"   #将Tomcat中默认的HTTPS端口Connector port 8443修改为443。8443端口不可通过域名直接访问、需要在域名后加上端口号;443端口是HTTPS的默认端口,可通过域名直接访问,无需在域名后加端口号。
          protocol="org.apache.coyote.http11.Http11NioProtocol"   #server.xml文件中Connector port有两种运行模式(NIO和APR),请选择NIO模式(也就是protocol="org.apache.coyote.http11.Http11NioProtocol")这一段进行配置。
          maxThreads="150"
          SSLEnabled="true">
        <SSLHostConfig>
            <Certificate       certificateKeystoreFile="/usr/local/tomcat/cert/证书域名.pfx"   #此处certificateKeystoreFile代表证书文件的路径,请用您证书的路径+文件名替换证书域名.pfx,例如:certificateKeystoreFile="/usr/local/tomcat/cert/abc.com.pfx"
             certificateKeystorePassword="证书密码"   #此处certificateKeystorePassword为SSL证书的密码,请用您证书密码文件pfx-password.txt中的密码替换,例如:certificateKeystorePassword="bMNML1Df"
             certificateKeystoreType="PKCS12" />   #证书类型为PFX格式时,certificateKeystoreType修改为PKCS12。
        </SSLHostConfig>
    </Connector>

5、重启Tomcat服务

6、访问 SSL 证书绑定的域名

Tomcat服务重启成功后,您可在浏览器中输入您SSL证书绑定的域名https://www.YourDomainName.com 验证证书安装结果。浏览器地址栏显示绿色的小锁标识说明证书安装成功

8.5 之前的版本 tomcat SSL 配置格式如下

<Connector port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/keystore.pfx"
keystoreType="PKCS12"
keystorePass="证书密码"
clientAuth="false" />
经验分享 程序员 微信小程序 职场和发展