SpringBoot支持HTTPS与HTTP
程序员大阳 人气:01. 背景
有时候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非常简单,极大的方便了我们的开发测试工作。
加载全部内容