简介
本文将概述性地写tomcat配置ssl的方法,关于springboot配置ssl的方法大同小异,所以再次不过多赘述。
注意:本文使用的是tomcat8.5.4。
这里大致说一下HTTP和HTTPS的区别,具体的差别,请自行查阅。
看了HTTP和HTTPS的区别,我们了解到HTTPS就是在HTTP的基础上加了一层保护(SSL),并且在使用HTTPS时要有证书。所以Tomcat配置SSL的的大致步骤如下:
创建个人证书
- 这里我们使用jdk自带的keytool工具生成证书。(当正式上线的时候还是要去买的)
- 打开终端并输入:
1 | keytool -genkey -v -alias keyname -keyalg RSA -validity 3650 -keystore ./Lee/test.keystore |
- alias: 名称
- keyalg: 证书算法,RSA
- validity:证书有效时间,10年
- keystore:证书生成的目标路径及文件名,替换成你自己的路径即可。根据提示输入个人信息,按正常输入即可,此处要注意密钥库口令和密钥口令建议相同,并且需要记好。
把刚才生成的证书放入Tomcat中。
配置tomcat配置文件server.xml
- 添加一个SSL的Connector
1 | <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" |
配置HTTP自动跳转到HTTPS
上面我们实现了HTTPS访问,但客户使用http访问时,仍会走http协议,依然是不安全的,所以下面配置HTTP自动跳转到HTTPS。
- 修改web.xml(项目中的)
1 | <security-constraint> |
- 修改server.xml,这里端口可改成80,这样用http访问80端口的时候会直接跳8443
1
2
3<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
拓展阅读
详细解析 HTTP 与 HTTPS 的区别 :https://juejin.im/entry/58d7635e5c497d0057fae036
跨域资源共享(CORS):https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS