环境
阿里云服务器、CentOS7系统、Tomcat9
申请免费证书
阿里云可申请一年的免费证书
申请证书教程:https://help.aliyun.com/document_detail/98574.html?spm=a2c4g.11186623.6.600.1a2d7597CYqniO
安装SSL证书前提条件
已从阿里云SSL证书服务控制台下载Tomcat服务器证书(包含PFX格式证书文件和TXT格式密码文件)。
申请SSL证书时绑定的域名已完成DNS解析、实现了该域名指向您Tomcat服务器的IP地址。
域名解析设置完成后执行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端口
修改前:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改后:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
②将下面代码复制到server.xml中,certificateKeystoreFile代表证书文件的路径,certificateKeystorePassword为SSL证书的密码
<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>
③找到下面代码并修改
修改前:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改后:
<Connector protocol="AJP/1.3" port="8009" redirectPort="443" secretRequired=""/>
④在web.xml文件最底部添加以下内容,实现HTTP自动跳转为HTTPS
<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证书已经安装成功