前面已介绍了:”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 ? 答案是,上面两种方法都可以的,任君选择 直接上代码: 其中,下面代码的作用是把此EmbeddedServletContainerFactory 注入到web容器中 然后,用下面的代码拦截所有的/*请求 并把其关联到下面的httpConnector中 最后,在public Connector httpConnector()中, 把http设为默认的80端口,并把http的请求跳转到443的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 要实现此要求,其实很简单,只需要把: 改为在spring boot下,让服务器同时支持http、https(Https系列三)
下面介绍的就是以上要求基于spring boot的实现
到此,这件事情就算是大功告成了。