笔者服务器环境
操 作 系 统 :Windows Server 2012
Tomcat版本:8.5
前言
本文将介绍,如何在Windows版本的Tomcat服务器配置SSL证书实现HTTPS访问,在这之前,假设你已经获得了Tomcat所需要的SSL证书和密码(获取SSL证书传送门)
下载SSL证书
请选择Tomcat版本的SSL证书下载,下载完成之后,你会得到一个压缩文件,内部包含你的SSL证书(.pfx文件或者.jks文件)和证书密码(.txt文件)。
解压你下载的压缩包,将.pfx文件移动至Tomcat安装目录/conf文件夹内(和server.xml同级)
配置SSL证书
找到server.xml文件,并用编辑器打开。由于HTTPS默认访问的端口是443端口,所以,首先我们要让80端口重定向的443端口。
假设你是第一次安装Tomcat,请找到:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
将之改成
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
如果你需要将Tomcat与其他HTTP(S)服务器集成时,你还需要找到:
<Connector port="8009" protocol="AJP/1.3" redirectPort="844" />
将之改成
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
最后,请找到:
<!-- <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost.jks"
type="RSA" />
</SSLHostConfig>
</Connector> -->
将之改成
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/你的证书文件名.pfx" certificateKeystorePassword="你的证书密码"
type="RSA" />
</SSLHostConfig>
</Connector>
注:中文字部分请按实际情况配置,certificateKeystoreFile对应你的证书文件地址,certificateKeystorePassword对应你的证书密码,即.txt文件的内容。
可选:强制HTTPS访问
本方法将实现HTTP访问自动跳转至HTTPS访问。
找到web.xml文件,并用编辑器打开。
在内容末尾找到:
<login-config>
<!-- Authorization setting for SSL -->
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
在本代码块后面插入:
<security-constraint>
<!-- Authorization setting for SSL -->
<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>
即可实现HTTP自动跳转至HTTPS。