2021.2.24 更新

1 概述

本文演示了如何给Spring Boot应用加上HTTPS的过程。

2 证书

虽然证书能自己生成,使用JDK自带的keytool即可,但是生产环境是不可能使用自己生成的证书的,因此这里使用的证书是购买过来的,具体流程就不说了,去云厂商处购买即可。

3 配置文件

新建一个Spring Boot工程,在配置文件添加如下参数:

server.ssl.key-store=classpath:crt/xxx.pfx
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=xxxx

具体配置需要结合云厂商的文档,笔者在阿里云上买的证书,下载的是Tomcat的版本,参照里面的帮助设置以上三个参数。

  • server.ssl.key-store:证书文件的位置,为classpath:crt/xxx,其中classpath:表示使用resources下的路径,但是需要加上一个文件夹,比如,假设证书文件名为1.pfx,直接放在resources下的话,路径就是classpath:1.pfx,这样是访问不了的,但是加上目录后,也就是如果放在resources/crt下,路径就是classpath:crt/1.pfx,这样就可以访问了
  • server.ssl.key-store-typePKCS12,根据阿里云的Tomcat配置文档得出,具体的话根据自己的云厂商证书部署文档决定
  • server.ssl.key-store-password:证书下载后有两个文件,一个是证书,一个是pfx-password.txt,这里的密码就是pfx-password.txt的内容

4 本地测试

直接run即可,首先可以试一下用HTTP访问:

http://localhost:8080

会提示需要使用HTTPS,改为HTTPS后:

这是因为笔者的证书绑定了域名的缘故,没有使用域名访问,修改本地host

127.0.0.1 www.xxx.xxx

这样使用域名访问就不会显示不安全了:

5 Docker部署

打包,改名为demo.jar,上传到服务器。

其他更详细的Docker部署操作请查看笔者之前的博客,戳这里

这里给出Dockerfile

FROM adoptopenjdk/openjdk11:aarch64-centos-jdk-11.0.8_10

MAINTAINER test <test@qq.com>

VOLUME /tmp

EXPOSE 8080

ADD demo.jar demo.jar

ENTRYPOINT ["java","-jar","demo.jar"]

创建镜像与容器并运行:

docker build -t demo .
docker run -d -p 8888:8080 demo

测试:

6 源码

Java版:

Kotlin版:

Spring Boot demo系列(六):HTTPS的更多相关文章

  1. Spring Boot demo系列(二):简单三层架构Web应用

    2021.2.24 更新 1 概述 这是Spring Boot的第二个Demo,一个只有三层架构的极简Web应用,持久层使用的是MyBatis. 2 架构 一个最简单的Spring Boot Web应 ...

  2. Spring Boot demo系列(五):Docker部署

    2021.2.24 更新 1 概述 本文讲述了如何使用Docker部署Spring Boot应用,首先介绍了Docker的安装过程,接着介绍了Docker的一些基础知识,最后讲述了Dockerfile ...

  3. Spring Boot demo系列(十):Redis缓存

    1 概述 本文演示了如何在Spring Boot中将Redis作为缓存使用,具体的内容包括: 环境搭建 项目搭建 测试 2 环境 Redis MySQL MyBatis Plus 3 Redis安装 ...

  4. Spring Boot demo系列(九):Jasypt

    2021.2.24 更新 1 概述 Jasypt是一个加密库,Github上有一个集成了Jasypt的Spring Boot库,叫jasypt-spring-boot,本文演示了如何使用该库对配置文件 ...

  5. Spring Boot demo系列(四):Spring Web+Validation

    2021.2.24 更新 1 概述 本文主要讲述了如何使用Hibernate Validator以及@Valid/@Validate注解. 2 校验 对于一个普通的Spring Boot应用,经常可以 ...

  6. Spring Boot demo系列(一):Hello World

    2021.2.24 更新 1 新建工程 打开IDEA选择新建工程并选择Spring Initializer: 可以在Project JDK处选择JDK版本,下一步是选择包名,语言,构建工具以及打包工具 ...

  7. Spring Boot demo系列(三):Spring Web+MyBatis Plus

    2021.2.24 更新 1 概述 Spring Web+MyBatis Plus的一个Demo,内容和上一篇类似,因此重点放在MyBatis Plus这里. 2 dao层 MyBatis Plus相 ...

  8. Spring Boot demo系列(八):Swagger

    2021.2.24 更新 1 概述 Swagger主要用于生成API文档,本文演示了如何使用目前最新的OpenAPI3以及Swagger来进行接口文档的生成. 2 依赖 <dependency& ...

  9. Spring Boot实战系列(7)集成Consul配置中心

    本篇主要介绍了 Spring Boot 如何与 Consul 进行集成,Consul 只是服务注册的一种实现,还有其它的例如 Zookeeper.Etcd 等,服务注册发现在微服务架构中扮演这一个重要 ...

随机推荐

  1. springboot项目打包成jar包在Linux服务器默认80端口运行

    springboot项目端口设置 在application.properties文件 server.port=80 在application.yml文件 server: port: 80 然后在ide ...

  2. Java基础语法:基本数据类型

    Java是一种强类型语言,每个变量都必须声明其类型. Java的数据类型 分为两大类:基本类型(primitive type)和引用类型(reference type). Java的所有八种基本类型的 ...

  3. 【转+】以C++为核心语言的高频交易系统的讨论

    [前言]高频交易是量化交易的核心.主要分两个方向:计算机技术和交易策略.策略各有不同,一般都是数据分析的专家或者金融,机器学习从业者.在计算机技术方面,一个是交易平台的性能,二者是硬件的性能,延时的多 ...

  4. Redis数据结构和对象三

    1.Redis 对象系统 Redis用到的所有主要数据结构,简单动态字符串(SDS).双端链表.字典.压缩列表.整数集合.跳跃表. Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些 ...

  5. POJ-1182(经典带权并查集)

    食物链 POJ-1182 一个很好的分析博客:https://blog.csdn.net/niushuai666/article/details/6981689 三种关系:两者同类,吃父节点,被父节点 ...

  6. Mybatis系列全解(六):Mybatis最硬核的API你知道几个?

    封面:洛小汐 作者:潘潘 2020 年的大疫情,把世界撕成几片. 时至今日,依旧人心惶惶. 很庆幸,身处这安稳国, 兼得一份安稳工. · 东家常讲的一个词:深秋心态 . 大势时,不跟风.起哄, 萧条时 ...

  7. 设计模式(二十四)——职责链模式(SpringMVC源码分析)

    1 学校 OA 系统的采购审批项目:需求是 采购员采购教学器材 1) 如果金额 小于等于 5000,  由教学主任审批 (0<=x<=5000) 2) 如果金额 小于等于 10000,   ...

  8. Sass/Scss 基础篇

    Sass/Scss 基础篇 总结Sass学习到的内容 应用Sass/Scss前,环境配置 首先下载Ruby (http://rubyinstaller.org/downloads) 通过命令下载sas ...

  9. C#开发BIMFACE系列38 网页集成开发2:审图系统中的模型或图纸批注

    系列目录     [已更新最新开发文章,点击查看详细] 在运维或协同的场景中,经常需要对模型或图纸进行批注,及时记录已发现的问题并交给相关负责的人员. 在开始实现功能之前,先了解一下BIMFACE中有 ...

  10. 如何让python脚本支持命令行参数--getopt和click模块

    一.如何让python脚本支持命令行参数 1.使用click模块 如何使用这个模块,在我前面的博客已经写过了,可参考:https://www.cnblogs.com/Zzbj/p/11309130.h ...