https 443 怎么改成80_怎样使用Spring Boot 集成配置 HTTPS

HTTP是一个客户端和服务器端请求和响应的标准TCP协议。

多了个 S,其实 S 表示 TLS、SSL。因此 HTTP 的基础架构如图所示:

0cd38129213b9114c2c6da86d0fb0e20.png

HTTP协议(HyperText Transfer Protocol),即超文本传输协议是用于服务器传输到客户端浏览器的传输协议。Web上,服务器和客户端利用HTTP协议进行通信会话。那集成 HTTPS ,简单来说,修改 Tomcat 容器配置,加一层对应的安全约束配置即可。

申请 HTTPS

申请SSL证书

打开阿里云证书,可以申请免费一年。一年后继续免费申请一年即可。

35c660bce1e44d0619c4acb2b7ad15f3.png

下载,这块选择 Tomcat ,因为这次集成只需要修改 Spring Boot 内嵌容器 Tomcat 配置。如果是 nginx ,也可以对应下载并集成配置

56eeff9a520a11692ef1d98516b1ec72.png

证书文件介绍

在证书控制台下载Tomcat版本证书,下载到本地的是一个压缩文件,解压后里面包含.pfx文件是证书文件,pfx_password.txt是证书文件的密码。

a3c242a796978c4a409391b230cdc923.png

另外两种配置模式:

PFX证书安装

JKS证书安装

本文使用 PFX证书安装。

配置 HTTPS

将 .pfx 文件复制到 resources 根目录,然后配置 application-prod.properties (生产配置文件):

#HTTPS

server.ssl.key-store=classpath:xx.com.pfxserver.ssl.key-store-password=123456server.ssl.key-store-type=PKCS12server.port=443

配置项如下:

server.port HTTPS 加密端口server.ssl.key-store SSL证书路径server.ssl.key-store-password SSL证书密码server.ssl.key-store-type 证书类型

然后新增 HttpsConfig 类,代码如下

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 进行操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值