Tomcat下SSL证书配置以及HTTP强转HTTPS
登,等灯………,首先恭喜一下自己域名成功备案😉,然后接下来自然是迫不及待绑定自己的博客啦。那么问题来了,输入域名访问后,浏览器提示“不安全”,这不能忍啊🙃。很显然这就是HTTP和HTTPS的区别😏!
HTTP与HTTPS
HTTP:是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
HTTPS:
- 以安全为目标的HTTP通道,(简而言之HTTP的安全版)。
- HTTPS的安全基础是SSL,(SSL用于加密)。
- 是一个URI schema(抽象标识符体系)。
两者区别:HTTPS协议需要CA申请证书,一般免费证书很少,需要交费。HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的ssl加密传输协议。且两者使用的是完全不同的连接方式,其端口也不一样,HTTP是80,HTTPS是443。
SSL证书
所以想用HTTPS前提你得有个证书,我是在阿里云购买的免费证书😆。获取方式:云盾证书服务。
直接购买,购买成功后可在SSL管理控制台查看证书状态。
点击申请,填写相关信息,然后等待审核(审核速度很快哦)。通过之后可在“已签发”页签下,下载相关证书(根据自己需要下载);
SSL证书Tomcat设置
这里我用的Tomcat9,所以下载的是Tomcat下的证书类型。证书下载之后应该包含两个文件:一个是 . pfx文件;一个是password文件。Tomcat支持JKS格式的证书,从Tomcat7之后也支持PFX格式证书。
1、在Tomcat的安装目录下创建一个cert文件夹,将 . pfx文件传入文件夹;
2、修改conf文件夹下server.xml文件,找到connection port='8443'
,(原先应该被注释掉了,取消注释),修改如下:
1 | <Connector port="443" |
***部分自行填写。(可能是Tomcat 9 或者是适用JKS证书格式的原因,有些<Connector>
标签下没有<SSLHostConfig>
标签,大家或者可以尝试以下方法。)
1 | <Connector port="443" |
3、除此之外,还需要修改两处端口为443;
1 | <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" |
1 | <Connector port="8009" protocol="AJP/1.3" redirectPort="443" /> |
4、在启动服务之前,还有一点需要注意,开放防火墙的443端口;
5、至此访问 htttps:// 就可以成功访问了;
HTTP强转HTTPS
做完以上几点,还不能实现http强转到https。
在阿里云里有种方法,HTTP重定向至HTTPS,有条件的可以试一下😂。还有一种针对Tomcat的方法,可以在conf文件夹下的web.xml文件中进行如下配置:
在<welcome-file-list>
后面加上下面这段:
1 | <security-constraint> |
不理解标签含义吗?看这里web.xml
这样在访问 http:// 时,就会自动跳转到 https:// 。
可能还有其他没有考虑到的因素,多多体谅,大家可以一起探讨。我在操作的时候参考了:https://www.jianshu.com/p/086817e78acd ,大家也可以参考一下。
- 本文标题:Tomcat下SSL证书配置以及HTTP强转HTTPS
- 本文作者:往后余生
- 本文链接:https://yuefengs.top/posts/1d365ac7/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!