前言
废话就不多讲了,直接开始。
我用的是阿里云免费版 DV SSL
证书,流程中需要做域名验证,最后下载证书。
- 阿里云,云盾免费证书申请,验证,下载证书(Tomcat)。
- 配置文件支持 HTTPS
- 配置类支持 HTTP
证书获取
阿里云证书申网上多的是,而且貌似也没有啥困难。
申请成功后下载证书:
SpringBoot 使用的是内置 Tomcat , 所以证书类型需要选择 Tomcat 。
下载后会有一个 pfx 文件 和一个密钥文件。
如果前置了 Nginx ,也需要下载 Nginx 证书且自行配置。
HTTPS 配置文件
server 下有三个配置参数如下,HTTPS 默认使用的端口为 server.port
。
server.httpPort
是为 HTTP 请求准备的,后面再使用。
server:
httpPort: 52312
port: 52311
ssl:
key-store: classpath:the.name.com.pfx
key-store-password: 123456
key-store-type: PKCS12
pfx 文件 复制到 resources 文件夹下,复制密钥。
如果只需要 HTTPS 请求,到这一步就可以了。一般来说,也并不需要配置2个端口来监听请求。
证书类型的话,看网上大佬这么总结的:
key-store-type类型 | 对应文件类型 |
---|---|
PKCS12 | 带有私钥的证书,包含了公钥和私钥的二进制格式的证书形式,以 pfx 作为证书文件后缀名。 |
JKS | Keystore,用来存放服务端证书,可以看成一个放key的库,key就是公钥,私钥,数字签名等组成的一个信息。一般都是 JDK 自带的 keytool 生成。 |
HTTP 配置类
HttpConfig
配置 HTTP
连接,因为默认端口配置文件支持了 HTTPS,所以使用配置类来支持 HTTP。
注入上面配置的 HTTP
端口。
@Configuration
public class HttpConfig {
@Value("${server.httpPort}")
private int httpPort;
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
// 添加http
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
private Connector createStandardConnector() {
//连接协议
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(httpPort);
return connector;
}
}
启动后:
[restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer :
Tomcat started on port(s): 52311 (https) 52312 (http) with context path ''
可以发现,存在两个监听端口。
参考文章
https://blog.csdn.net/qq_38288606/article/details/89478353
https://blog.csdn.net/weixin_41917987/article/details/80988197
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/10304.html