前几天用 Let`s Encrypt 为服务器申请了ssl证书.进行证书配置的时候考虑到扩展性保留了http访问的功能.在这里记录在Tomcat端实现http访问自动跳转到https的配置方法.
1.首先配置Tomcat目录下config/server.xml文件.
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />
首先保证service.xml里的内容和上面配置相同
2.配置相同目录下的web.xml文件
打开web.xml,输入”G”跳转到文件的末尾(如果你是用vim的话),在标签之前插入如下字符:
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>Client Cert Users-only Area</realm-name>
</login-config>
<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>
然后重启Tomcat即可.