Spring Boot 集成配置 HTTPS

栏目: Java · 发布时间: 7年前

内容简介:这是泥瓦匠的第108篇原创文章工程:

号外:为读者持续整理了几份最新教程,覆盖了 Spring Boot、Spring Cloud、微服务架构等PDF。

获取方式:关注右侧公众号"泥瓦匠BYSocket",来领取吧!

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢!

这是泥瓦匠的第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 的基础架构如图所示:

Spring Boot 集成配置 HTTPS

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

二、申请 HTTPS

2.1 申请SSL证书

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

Spring Boot 集成配置 HTTPS

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

Spring Boot 集成配置 HTTPS

2.2 证书文件介绍

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

Spring Boot 集成配置 HTTPS

另外两种配置模式:

  • 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

Spring Boot 集成配置 HTTPS (关注微信公众号,领取 Java 精选干货学习资料) (添加我微信:bysocket01。加入纯技术交流群,成长技术)


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

微信营销与运营

微信营销与运营

秦阳、秋叶 / 人民邮电出版社 / 2016-12-1 / 39.80

《微信营销与运营》共分七章。第1章重点介绍了微信营销的概念、价值和特征,引导读者全面认识微信营销;第2章介绍了个人微信号的运营技巧和手法;第3章重点介绍了微信公众平台的基础操作入门,申请适合自己的公众平台类型并进行基本设置;第4章介绍了微信运营的规划策略,落实公众号的定位、内容问题;第5章介绍微信运营中包括排版、增加粉丝、提升阅读量等运营实战中的经验和手法,并了解微信运营的整个运营框架体系;第6章......一起来看看 《微信营销与运营》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具