内容简介:这是泥瓦匠的第108篇原创文章工程:问:什么是HTTP?答:HTTP是一个客户端和服务器端请求和响应的标准TCP协议。
这是泥瓦匠的第108篇原创
文章工程:
- JDK 1.8
- Maven 3.5.2
- Spring Boot 1.5.9.RELEASE
一、HTTPS 是什么
问:什么是HTTP?答:HTTP是一个客户端和服务器端请求和响应的标准TCP协议。
比如打开我的博客地址:
https://www.bysocket.com复制代码
多了个 S,其实 S 表示 TLS、SSL。因此 HTTP 的基础架构如图所示:
HTTP协议(HyperText Transfer Protocol),即超文本传输协议是用于服务器传输到客户端浏览器的传输协议。Web上,服务器和客户端利用HTTP协议进行通信会话。那集成 HTTPS ,简单来说,修改 Tomcat 容器配置,加一层对应的安全约束配置即可。
二、申请 HTTPS
2.1 申请SSL证书
打开阿里云证书,可以申请免费一年。一年后继续免费申请一年即可。
下载,这块选择 Tomcat ,因为这次集成只需要修改 Spring Boot 内嵌容器 Tomcat 配置。如果是 nginx ,也可以对应下载并集成配置
2.2 证书文件介绍
在证书控制台下载Tomcat版本证书,下载到本地的是一个压缩文件,解压后里面包含.pfx文件是证书文件,pfx_password.txt是证书文件的密码。
另外两种配置模式:
- PFX证书安装
- JKS证书安装
本文使用 PFX证书安装。
三、配置 HTTPS
将 .pfx 文件复制到 resources 根目录,然后配置 application-prod.properties (生产配置文件):
## HTTPS server.ssl.key-store=classpath:xx.com.pfx server.ssl.key-store-password=123456 server.ssl.key-store-type=PKCS12 server.port=443复制代码
配置项如下:
- server.port HTTPS 加密端口
- server.ssl.key-store SSL证书路径
- server.ssl.key-store-password SSL证书密码
- server.ssl.key-store-type 证书类型
然后新增 HttpsConfig 类,代码如下
@Configuration public class HttpsConfig { /** * spring boot 1.x */ /* */ @Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() { @Override protected void postProcessContext(Context context) { SecurityConstraint constraint = new SecurityConstraint(); constraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection = new SecurityCollection(); collection.addPattern("/*"); constraint.addCollection(collection); context.addConstraint(constraint); } }; return tomcat; } }复制代码
运行即可,从日志看出已经支持 HTTPS:
2019-06-16 10:42:42.989 INFO 16727 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 443 (https) 2019-06-16 10:42:45.782 INFO 16727 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 443 (https)复制代码
注意点:
- 这是 1.x 的配置,2.x 版本有所不同
- https 默认端口号是 443。本机环境会端口占用可以改成 8080 等
- 如果一台机器两个 HTTPS 服务,那么可以通过 setRedirectPort 进行操作
参考资料
- Spring Boot 2.x 系列:https://www.bysocket.com/springboot
- spring.io 官方文档
以下专题教程也许您会有兴趣
- 《程序兵法:算法与数据结构》 https://www.bysocket.com/technique/2314.html
- 《Spring Boot 2.x 系列教程》
https://www.bysocket.com/springboot - 《Java 核心系列教程》
https://www.bysocket.com/technique/2100.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 软件配置管理和持续集成
- 如何配置集成容器的OVN网络?
- Spring Boot 集成配置 HTTPS
- Golang 集成 Protobuf 及 vscode 配置
- (很全面)SpringBoot 集成 Apollo 配置中心
- Spring-Boot集成Dubbo相关配置总结
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。