当前位置: 首页 > news >正文

Springboot工程配置https访问

背景

因为前端工程使用nginx配置了https访问,在https直接请求我们Springboot后端的http接口会报错。那么我们就需要配置使得我们后端的springboot服务支持https访问。

证书生成

在配置springboot工程https之前,我们需要生成自签名证书以及Spring Boot通常使用的PKCS#12格式的密钥库。

  • 生成自签名证书
openssl req -x509 -newkey rsa:4096 -keyout keystore.key -out keystore.crt -days 365

其中-days 365:证书有效期为365天。

执行此命令后,系统将提示你输入一些证书信息,如国家、州/省、城市、组织等。这些信息将被嵌入到证书中。

  • 创建PKCS#12文件
openssl pkcs12 -export -in keystore.crt -inkey keystore.key -out keystore.p12 -name myalias -CAfile keystore.crt -caname root -chain

这条命令将执行以下操作:

-export:导出PKCS#12文件。
-in:指定证书文件的路径。
-inkey:指定私钥文件的路径。
-out:指定PKCS#12文件的输出路径(这里是keystore.p12)。
-name:指定密钥库中的别名(这里是myalias)。
-CAfile:指定证书文件(这里是keystore.crt)。
-caname:指定CA的名称(这里是root)。
-chain:包含整个证书链。

系统将提示你输入密码以保护PKCS#12文件,我们同样设置为myalias。现在,我们已经生成了一个自签名证书和一个keystore.p12文件的密钥库。

工程配置

得到keystore.p12密钥库文件之后,我们只需要完成以下两步就可以完成springboot工程的https访问。

  • 添加ssl配置类
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.Ssl;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class SslConfig {@Beanpublic WebServerFactoryCustomizer<TomcatServletWebServerFactory> servletContainer() {return factory -> {Ssl ssl = new Ssl();// 配置SSL属性ssl.setKeyStore("classpath:keystore.p12");// 上面配置密钥库的密码ssl.setKeyStorePassword("myalias");ssl.setKeyStoreType("PKCS12");// 密钥库的别名ssl.setKeyAlias("myalias");factory.setSsl(ssl);};}
}

注意上面配置类的配置改成自己的。

  • 导入密钥库文件

把上面生成的keystore.p12密钥库文件放到springboot工程的resources文件夹下。

到现在就完成了springboot服务的https改造。如果你之前的服务端口是8080,那么现在你可以使用https://127.0.0.1:8080访问你的服务!


http://www.mrgr.cn/news/21588.html

相关文章:

  • 英文翻译工具怎么选?这4款值得收藏。
  • gpedit.msc本地组策略编辑器,结果发现竟然打不开了
  • sunxi-fel 的相关命令
  • 文本分类场景下微调BERT
  • 类和对象的概述以及this指针的应用
  • Python基础—Python 中pip的8个必备命令
  • 力扣最热一百题——最大子数组和
  • 最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
  • 超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密
  • SpringBoot登录退出|苍穹外卖登录退出分析
  • yolov8 pt转onnx
  • Java并发:互斥锁,读写锁,Condition,StampedLock
  • 26 线性表 · 顺序表
  • 146. LRU 缓存
  • 11.2.软件系统分析与设计-数据库分析与设计
  • Rust使用之【宏】
  • C# 如何同时Ping多个IP地址
  • STM32 - 笔记4
  • 部落冲突:精通五个流派,部落战传奇杯横着走,但前提是能精通!
  • 最新厦门新能安社招入职Verify测评笔试攻略敬请查收SHL