SpringBoot同时支持HTTPS与HTTP的实现示例
1. 背景
有时候SpringBoot需要支持HTTPS,例如一些微信小程序要求必须使用HTTPS。
但是之前开发的一些接口,还需要使用HTTP,此时就需要同时让SpringBoot支持HTTPS和HTTP。
本篇来解决这个问题,本人使用SpringBoot版本为<version>2.2.5.RELEASE</version>,其他版本仅供参考哈哈。
2. 制作HTTPS证书
可以直接使用freessl制作免费证书,这个之前我已详细写过一篇文章:Tomcat HTTPS证书申请与部署。
使用上文的方法,直到第7步,制作jks文件即可。
3. 让SpringBoot支持Https
非常简单,直接在application.yml配置文件中添加配置即可:
server:
port: 7002 #端口
ssl:
key-store: C:\tomcat.jks
key-password: 123456
key-store-type: JKS
注意key-store值为jks文件地址,key-password为制作证书过程中的密码。
此时启动SpringBoot项目,会发现已经在7002端口支持HTTPS请求了。
4. 让SpringBoot同时支持HTTP
配置文件中的端口server.port目前代表的是HTTPS协议的端口号,我们还需要再手工添加一个HTTP协议支持的端口号。
直接在启动类中添加如下代码:
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(7001);
tomcat.addAdditionalTomcatConnectors(connector);
return tomcat;
}
再次启动项目,可以通过7001访问HTTP接口啦。
5. 小结
SpringBoot同时支持HTTPS和HTTPS非常简单,极大的方便了我们的开发测试工作。
到此这篇关于SpringBoot同时支持HTTPS与HTTP的实现示例的文章就介绍到这了,更多相关SpringBoot支持HTTPS与HTTP内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341