Spring Boot应用程序如何配置 HTTPS 访问方式
在 Spring Boot 应用程序中配置 HTTPS 访问方式可以根据你是否拥有由受信任的证书颁发机构(CA)签发的证书来分为两种情况:使用自签名证书和使用 CA 签发的证书。下面我将分别介绍这两种情况的配置方法:
使用自签名证书
如果你还没有有效的 SSL/TLS 证书,可以选择生成一个自签名证书。这种证书不由 CA 签发,适用于测试和开发环境。
生成自签名证书: 使用
keytool
生成自签名证书和密钥库(.jks
或.p12
):keytool -genkeypair -alias myalias -keyalg RSA -keysize 2048 -keystore mykeystore.jks -validity 365 -storepass [密钥库密码] -keypass [密钥密码]
配置 Spring Boot: 在
application.properties
或application.yml
中配置 SSL:application.yml
示例:server: port: 8443 ssl: key-store: classpath:mykeystore.jks key-store-password: [密钥库密码] keyStoreType: JKS keyAlias: myalias
将密钥库放置在资源目录: 将
mykeystore.jks
文件放在项目的src/main/resources
目录下。
使用 CA 签发的证书
如果你选择从 CA 获取证书,步骤会稍有不同。
从 CA 获取证书:
- 生成 CSR(证书签名请求)并提交给 CA。
- 完成域名验证并从 CA 获取证书。
将证书转换为 KeyStore: 如果 CA 提供的证书不是在 KeyStore 格式,你需要将其转换为
.jks
或.p12
格式。使用openssl
可以完成这个转换。配置 Spring Boot: 和使用自签名证书时的配置类似,但密钥库的路径和密码将对应于从 CA 获得的证书。
application.yml
示例:server: port: 8443 ssl: key-store: classpath:keystore.p12 key-store-password: [密钥库密码] keyStoreType: PKCS12 keyAlias: myalias
将密钥库放置在资源目录: 将转换后的密钥库文件放在
src/main/resources
目录下。
共同步骤
- 重启应用:重启 Spring Boot 应用以应用这些配置。
- 测试 HTTPS 连接:确保应用程序现在可以通过 HTTPS 正确访问。
注意事项
- 自签名证书不适用于生产环境,因为它们不被用户浏览器信任。
- 使用 CA 签发的证书适用于生产环境,可以提供更高的安全性和用户信任度。
- 保护你的密钥库和私钥文件,不要公开它们。
- 对于生产环境,你可能还需要考虑其他安全措施,如配置 HTTP 到 HTTPS 的重定向、启用 HSTS(HTTP Strict Transport Security)等。
相关文章:

spring.factories文件的作用
即spring.factories文件是帮助spring-boot项目包以外的bean(即在pom文件中添加依赖中的bean)注册到spring-boot项目的spring容器中。在Spring Boot启动时,它会扫描classpath下所有的spring.factories文件,加载其中的自动配置类,并将它们注入到Spring ApplicationContext中,使得项目能够自动运行。spring.factories文件是Spring Boot自动配置的核心文件之一,它的作用是。

7min到40s:SpringBoot 启动优化实践
然后重点排查这些阶段的代码。先看下。

SpringBoot系列教程之Bean之指定初始化顺序的若干姿势
之前介绍了@Order注解的常见错误理解,它并不能指定 bean 的加载顺序,那么问题来了,如果我需要指定 bean 的加载顺序,那应该怎么办呢?本文将介绍几种可行的方式来控制 bean 之间的加载顺序。

SpringBoot接口防抖(防重复提交)的一些实现方案
作为一名老码农,在开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用,但幸运的是,我至今还没有遇到过线上系统由于代码崩溃导致资损的情况。这其中的原因有三点:一是业务系统本身并不复杂;二是我一直遵循某大厂代码规约,在开发过程中尽可能按规约编写代码;三是经过多年的开发经验积累,我成为了一名熟练工,掌握了一些实用的技巧。啥是防抖所谓防抖,一是防用户手抖,二是防网络抖动。

SpringBoot请求转发与重定向
但是可能由于B网址相对于A网址过于复杂,这样搜索引擎就会觉得网址A对用户更加友好,因而在重定向之后任然显示旧的网址A,但是显示网址B的内容。在平常使用手机的过程当中,有时候会发现网页上会有浮动的窗口,或者访问的页面不是正常的页面,这就可能是运营商通过某种方式篡改了用户正常访问的页面。重定向,是指在Nginx中,重定向是指通过修改URL地址,将客户端的请求重定向到另一个URL地址的过程,Nginx中实现重定向的方式有多种,比如使用rewrite模块、return指令等。使用场景:在返回视图的前面加上。

在 Spring MVC 中,用于接收前端传递的参数的注解常用的有以下几种
form-data参数使用multipart/form-data作为Content-Type,前端使用params格式传参,后端使用@RequestParam注解接收参数。- json请求体参数使用application/json作为Content-Type,前端使用data格式传参,后端使用@RequestBody注解接收参数。- 路径传参不需要设置Content-Type,前端将参数通过URL传递,后端使用@PathVariable注解接收参数。
SpringBoot 使用过滤器、拦截器、切面(AOP),及其之间的区别和执行顺序
Servlet(Server Applet),全称是Java Servlet,是提供基于协议请求/响应服务的Java类。在JavaEE中是Servlet规范,即是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的Java类,一般人们理解是后者。是什么。

【总结】SpringBoot 中过滤器、拦截器、监听器的基本使用
拦截器是在面向切面编程中应用的,就是在你的service或者一个方法前调用一个方法,或者在方法后调用一个方法。是基于JAVA的反射机制。1)预处理preHandle()方法用户发送请求时,先执行preHandle()方法。会先按照顺序执行所有拦截器的preHandle方法,一直遇到return false为止,比如第二个preHandle方法是return false,则第三个以及以后所有拦截器都不会执行。若都是return true,则执行用户请求的url方法。2)后处理postHandle()方法。

Springboot支付宝沙箱支付---完整详细步骤
两种方式进行配置。这里我采取的是默认方式: 开发者如需使用系统默认密钥/证书,可在开发信息中选择系统默认密钥。注意:使用API在线调试工具调试OpenAPI必须使用系统默认密钥。

SpringBoot--过滤器/拦截器/AOP--区别/使用/顺序
本文介绍SpringMVC(SpringBoot)中的过滤器、拦截器、AOP的区别及其用法。 如果监听器、过滤器、 拦截器、 AOP都存在,则它们的执行顺序为:监听器 => 过滤器=> 拦截器=> AOP。

Spring boot 3 集成rocketmq-spring-boot-starter解决版本不一致问题
根据上篇文章使用Docker安装RocketMQ并启动之后,有个隐患详情见下文。如何解决rocketmq 和spring boot 3.x集成问题

解决不同请求需要的同一实体类参数不同(分组校验validation)
新增目录是自动生成id,不需要id参数;更新目录需要id,不能为空pom.xml中已有spring-boot-starter-validation依赖实体类category新增目录Controller代码更新目录Controller代码。

基于SpringBoot的校园二手闲置交易平台
基于SpringBoot的校园二手闲置交易平台的设计与实现~

Nodejs+Express搭建HTTPS服务
最近开发需要搭建一个https的服务,正好最近在用nodejs和express,于是乎想到就近就使用这两东西来搭建一个https的服务吧。这里搭建过程总共需要两步,第一步生成证书,第二步使用https模块启动服务。

java中代理的实现并在spring的应用
Java代理机制是一种在运行时创建一个代理对象来代替原始对象的方法。代理对象通常用于在调用原始对象的方法之前或之后执行一些额外的操作,例如日志记录、性能监控等。

基于SpringBoot整合RocketMQ异步发送短信功能
上一篇文章记录了 RocketMQ 整体架构、安装部署、应用场景这三个内容。熟悉了 RocketMQ 相关核心概念后,本文记录基于 SpringBoot 整合 RocketMQ 异步发送短信功能,其中会引入阿里云短信服务相关内容。

Springboot应用中过滤器chain.doFilter后设置header无效&filterChain.doFilter后使用response对象引起的问题&Filter过滤器执行流程
本文是在使用过滤器添加动态header过程中遇到设置header无效,经过研究源码而产生。因为特殊需求,自定义的header必须在经过Controller处理之后,才能确定,所以不能在请求处理之前设置,必须在请求处理之后。于是出现了这个坑。

如何快速本地搭建悟空CRM结合内网穿透工具高效远程办公
如何快速本地搭建悟空CRM结合内网穿透工具高效远程办公。