此文环境是Windows Sever2008 R2, Tomcat8.5, Tomcat9都可以。https是用的阿里云的免费dv证书,tomcat绑定的是pfx证书(Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一)。
在申请到阿里云的免费DV证书后,下载 "证书 for Tomcat",阿里云证书安装配置说明https://yundun.console.aliyun.com/?spm=5176.100251.111252.7.1d424f15wWFKFj&p=cas#/cas/download/1540453041410?regionId=
文件说明:
1. 证书文件214054375370509.pem,包含两段内容,请不要删除任何一段内容。
2. 如果是证书系统创建的CSR,还包含:证书私钥文件214054375370509.key、PFX格式证书文件214054375370509.pfx、PFX格式证书密码文件pfx-password.txt。
PFX证书安装
1、在Tomcat更目下建个cert文件夹,把下载的证书文件放里面。
2、找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port="8443" 标签,默认是注释的,去掉注释,修改增加内容【绿色部分为修改部分】。
3、把默认的8443端口改成443端口
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https"
secure="true"
>
<SSLHostConfig>
<Certificate certificateKeystoreFile="C:/Program Files/Apache Software Foundation/Tomcat 8.5/cert/1541231341210.pfx"
certificateKeystoreType="PKCS12" certificateKeystorePassword="1541231341210" />
</SSLHostConfig>
</Connector>
为了让http访问自动跳转为https访问,这里顺便把这两个标签端口也改成443,
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
4、修改Tomcat8、9配置的web.xml
编辑web.xml,不加下面这段的话不能把http请求转为https
在该文件</welcome-file-list>标签(一般在文件最末尾)后面加上这样一段:
<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>