- 时间:2022-11-01 00:09 编辑: 来源: 阅读:311
- 扫一扫,手机访问
摘要:在spring boot下,让服务器同时支持http和https(Https系列三)
<免费源码>
在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后,我们是可以自动跳转到:https对应的https://www.my.com还是仍然跳转到:http://www.my.com?答案是,以上两种方法都可以。如果选择下面的细节,上面的需求是基于spring boot的实现直接上传代码:其中,下面的代码是用来将这个内嵌的ServerLetContainer工厂注入到web容器中,然后,用下面的代码阻塞所有/*请求,并关联到下面的httpConnector。最后,在公共连接器httpConnector()中,将http设置为默认端口80,将http请求跳转到https端口443,这是https的默认端口,也可以设置为其他值。但是应该对应resources/application . properties的内容如下:运行服务器时会看到如下打印:TomcatEmbeddedServletContainer,同时打开两个端口:443 (https) 80 (http)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。要达到这个要求,其实很简单,只需把:改成