在spring boot下,让服务器同时支持http、https(Https系列三)

  • 时间:2018-06-20 22:29 作者:php疑难杂症铺 来源:php疑难杂症铺 阅读:116
  • 扫一扫,手机访问
摘要:在spring boot下,让服务器同时支持http、https(Https系列三)前面已详情了:”https在服务器端的部署,基于tomcat,spring boot” 但我们会发现一个问题,只可以使用https登录我们的网站,而不可以使用http假设我们的网站名为:www.my.com 假如是之

在spring boot下,让服务器同时支持http、https(Https系列三)

前面已详情了:”https在服务器端的部署,基于tomcat,spring boot

但我们会发现一个问题,只可以使用https登录我们的网站,而不可以使用http

假设我们的网站名为:www.my.com

假如是之前的http,我们只要在浏览器中输入:my.com

浏览器就会自动登录到:http:// www.my.com

但部署了https后,发现在浏览器中输入:my.com,返回的结果是:无法访问此网站

这对使用户来说,体验是非常不好的。

好吧,那我们试试少量比较有名的网站,如阿里云。

在浏览器中输入:aliyun.com

就可以自动跳转到:https: //www.aliyun.com

那我们可以不可以在部署了https后,在输入:my.com

自动跳转到https对应的: https:// www.my.com

或者

仍然跳转到:http:// www.my.com ?

答案是,上面两种方法都能的,任君选择


下面详情的就是以上要求基于spring boot的实现

直接上代码:

在spring boot下,让服务器同时支持http、https(Https系列三)

在spring boot下,让服务器同时支持http、https(Https系列三)

在spring boot下,让服务器同时支持http、https(Https系列三)

在spring boot下,让服务器同时支持http、https(Https系列三)

在spring boot下,让服务器同时支持http、https(Https系列三)

其中,下面代码的作使用是把此EmbeddedServletContainerFactory 注入到web容器中

在spring boot下,让服务器同时支持http、https(Https系列三)

而后,使用下面的代码阻拦所有的/*请求

在spring boot下,让服务器同时支持http、https(Https系列三)

并把其关联到下面的httpConnector中

在spring boot下,让服务器同时支持http、https(Https系列三)

最后,在public Connector httpConnector()中,

把http设为默认的80端口,并把http的请求跳转到443的https端口

其中443是https的默认端口,也能设为其它的值,但要和resources/application.properties的内容对应

如下:

在spring boot下,让服务器同时支持http、https(Https系列三)

运行服务器,会看到打印如下:

在spring boot下,让服务器同时支持http、https(Https系列三)

其中会看到TomcatEmbeddedServletContainer,和同时开启的两个端口:443 (https) 80 (http)

在spring boot下,让服务器同时支持http、https(Https系列三)

Ok,那现在试试输入:my.com,就会发现浏览器会直接跳到:https:// www.my.com了


到此,这件事情就算是大功告成了。

但此时有同学可可以会提出特殊的要求:

他的https只是为了某某的要求而用的,比方说要接入什么什么的肯定要填的是https的地址

而他的网站根本就不需要https这种安全级别的,另外,他觉得http的访问速度可可以会快点,你知到有些同学是有这种洁癖的 :p

也就是说:

输入:my.com,跳到: http:// www.my.com

输入:https:// www.my.com,跳到:https:// www.my.com

要实现此要求,其实很简单,只要要把:

在spring boot下,让服务器同时支持http、https(Https系列三)

改为

在spring boot下,让服务器同时支持http、https(Https系列三)

  • 全部评论(0)
最新发布的资讯信息
【系统环境|软件环境】如何成为一名大数据工程师?(2019-05-20 12:11)
【系统环境|Linux】大数据四大常识,不会你敢说自己在做大数据?(2019-05-19 11:39)
【系统环境|】需要同时掌握AVA和Linux,才可以继续大数据课程的学习(2019-05-18 10:28)
【系统环境|软件环境】学习大数据,一定要了解大数据的这些用途(2019-05-16 10:49)
【系统环境|Linux】bt宝塔控制面板mysql频繁自动停止详细解决办法(2019-05-16 08:52)
【系统环境|】大数据零基础学习路线,新人记得保存收藏哦(2019-05-15 10:54)
【系统环境|】全网最全最新的大数据系统学习路径(2019-05-14 15:38)
【系统环境|Linux】毕业设计:音乐分享系统(2019-05-14 07:48)
【系统环境|】教你零基础如何快速入门大数据技巧(2019-05-12 11:25)
【系统环境|】想学习大数据?这才是完整的大数据学习体系(2019-05-11 11:33)
手机二维码手机访问领取大礼包
返回顶部