Spring Boot2 系列教程(八)Spring Boot 中配置 Https

引入 https

====================================================================

接下来我们需要在项目中引入 https。

将上面生成的 javaboy.p12 拷贝到 Spring Boot 项目的 resources 目录下。然后在 application.properties 中添加如下配置:

server.ssl.key-store=classpath:javaboy.p12

server.ssl.key-alias=tomcathttps

server.ssl.key-store-password=111111

其中:

  • key-store表示密钥文件名。

  • key-alias表示密钥别名。

  • key-store-password就是在cmd命令执行过程中输入的密码。

配置完成后,就可以启动 Spring Boot 项目了,此时如果我们直接使用 Http 协议来访问接口,就会看到如下错误:

改用 https 来访问 ,结果如下:

这是因为我们自己生成的 https 证书不被浏览器认可,不过没关系,我们直接点击继续访问就可以了(实际项目中只需要更换一个被浏览器认可的 https 证书即可)。

请求转发

================================================================

考虑到 Spring Boot 不支持同时启动 HTTP 和 HTTPS ,为了解决这个问题,我们这里可以配置一个请求转发,当用户发起 HTTP 调用时,自动转发到 HTTPS 上。

具体配置如下:

@Configuration

public class TomcatConfig {

@Bean

TomcatServletWebServerFactory tomcatServletWebServerFactory() {

TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(){

@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);

}

};

factory.addAdditionalTomcatConnectors(createTomcatConnector());

return factory;

}

private Connector createTomcatConnector() {

Connector connector = new

Connector(“org.apache.coyote.http11.Http11NioProtocol”);

connector.setScheme(“http”);

connector.setPort(8081);

connector.setSecure(false);

connector.setRedirectPort(8080);

return connector;

}

}

在这里,我们配置了 Http 的请求端口为 8081,所有来自 8081 的请求,将被自动重定向到 8080 这个 https 的端口上。

如此之后,我们再去访问 http 请求,就会自动重定向到 https。

结语

==============================================================

最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

29771)]

最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

[外链图片转存中…(img-3CvgBljE-1719171629772)]

  • 23
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值