小编今天花了一下午的时间学习tomcat https配置,使用的是TrustAsia SSL证书,格式是jks的SSL加密文件,这次要实现的功能是:配置tomcat SSL证书,当我们访问http的时候还会自动重定向到https,可以说本教程是最完美的tomcat SSL配置教程之一,下面来学习一下吧!
第一步:申请免费的tomat的SSL证书,小编的是腾讯云提供的TrustAsia证书,下载完成之后,将tomcat版本的SSL加密文件,上传到tomcat服务器的“conf”文件夹中即可,如图所示是下载下来的SSL证书,不同环境的服务器版本对应了不同的加密文件:
“Tomcat”文件下会有如下jks格式的文件,如图所示,记得将此jks加密文件上传到tomcat服务器的conf目录中:
步骤二:在tomcat服务器下的conf/server.xml配置文件中配置80端口访问(Connector标签内,默认的8080端口改成80端口,redirectPort="8443"改成443端口),并且支持443端口访问,代码如下:
<Connector port="80" maxHttpHeaderSize="8192" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443"/> <Connector port="443" connectionTimeout="20000" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true"> <SSLHostConfig> <Certificate certificateKeystoreFile="conf/example.com.jks" certificateKeystorePassword="123456" type="RSA" /> </SSLHostConfig> </Connector>
certificateKeystoreFile:此属性指向的是我们上面下载下来的jks加密文件的路径
certificateKeystorePassword:申请SSL证书时填写的密码,如果你没有填写密码,则不需要加入此属性
备注:在server.xml文件中添加这两个Connector之后,我们就通过http与https(443端口)均可以访问到我们的网页了
步骤三:一般情况下,用户可能直接输入的如“www.example.com”这样的域名,此时如果想让它自动重定向到https的域名上,就需要在“conf/web.xml”配置文件的末尾加入如下配置即可。
<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>
配置好之后,我们的网站就可以通过“https://www.example.com”这样访问了,即使用户输入的是“http://www.example.com”也会自动重定向到https上。