一. 配置双协议的原因?
1. SpringBoot项目,默认支持的是http协议。
2. 微信小程序开发中,对网络数据请求做出了限制(只支持https协议)
(1)出于安全性方面的考虑,小程序官方对数据接口的请求做出了如下两个限制:
①只能请求 HTTPS 类型的接口
②必须将接口的域名添加到信任列表中
(2)在开发过程中,我们可以先勾选不校验合法域名,先使用http请求,来进行测试。但在上线后,必须支持https协议的请求。

二 . 开始配置
1. 证书生成
(1)我们可以使用用jdk自带的keytool生成一个.pfx的文件
keytool -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore D:\httpsKey.pfx -validity 3600

(2)参数:
-genkey 生成key
-validity 3600 有效期限3600天
-alias 别名
-keyalg RSA 指定生成key的算法RSA
-keystore D:\httpsKey.pfx 指定生成的pfx文件和路径 在D盘下
2. 然后将生成的证书, 放在项目的resources目录下

3. 在application.yml中配置相关信息,使项目支持https协议的请求
在yml文件中配置:支持双协议。yml文件中配置https协议。http协议在另一个文件中配置,下面会讲。

#这里配置的时支持https协议,8080是https协议服务的端口号。http协议服务端口号为9201在配置文件中配置
server:
port: 8080
servlet:
context-path: /bm
ssl:
enabled: true #true表示开启https请求协议。false代表关闭https协议(当前协议就是http协议)
protocol: TLS #加密通信的规范
key-store: classpath:httpsKey.pfx #生成的证书
key-store-password: admin123 #执行证书的密码
key-store-type: PKCS12 ##执行证书的类型,需要与证书后缀所属类型相符
4. 自定义一个config配置类,在该类中配置http协议

@Component
public class TomcatServerCustomer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {
@Override
public void customize(TomcatServletWebServerFactory factory) {
// final Connector connector = new Connector("HTTP/1.1");
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(9201);
factory.addAdditionalTomcatConnectors(connector);
}
}
三. 验证配置是否成功
1. 启动SpringBoot项目,查看日志是否出现以下结果

2. 访问接口验证协议是否配置成功(我这里通过Swagger接口文档验证不同的协议请求)
(1)http协议,我配置的端口号是9201

(2)https协议,我配置的端口号是8080

通过以上结果:SpringBoot配置双协议成功!!!
四. 证书类型与后缀辨别
证书主要的文件类型和协议有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSR、CRT、CRL 、OCSP、SCEP等。
| 证书类型 | 常见的后缀 |
| PKCS7 | .P7B .P7C .SPC |
| PKCS12 | .P12 .PFX |
| X.509 DER编码(ASCII) | .DER .CER .CRT |
| X.509 PAM编码(Base64) | .PEM .CER .CRT |
| .cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。 | |
| .pem跟crt/cer的区别是它以Ascii来表示 | |
| pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式 | |
| p10是证书请求 | |
| p7r是CA对证书请求的回复,只用于导入 | |
| p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥 |
本文介绍了如何在SpringBoot项目中配置双协议,以支持HTTPS并满足微信小程序的安全限制。步骤包括证书生成、YML配置、自定义Tomcat连接器和验证配置成功。
6689

被折叠的 条评论
为什么被折叠?



