SpringBoot 启用 Https,生成 jks 自签证书

使用 Java 提供的工具生成 jks 自签证书

keytool 是 Java Development Kit (JDK) 中的一个工具,用于管理公钥和私钥对以及相关的证书。以下命令用于生成一个密钥对并将其存储在密钥库中:

shell 复制代码
keytool -genkeypair -alias www.example.com -keyalg RSA -keypass 123456 -storepass 123456 -keysize 2048 -validity 3650 -keystore www.example.com.jks

其中部分参数解释如下:

  • -genkeypair 告诉 keytool 生成一个新的密钥对。
  • -alias 为生成的密钥对指定一个别名,可填写网站域名。
  • -keyalg 指定生成密钥对时使用的算法,这里是 RSA
  • -keypass 设置私钥的密码。
  • -storepass 设置密钥库的密码。
  • -keysize 指定 RSA 密钥对的大小,这里是 2048 位。这是一个常见的选择,因为它提供了足够的安全性,同时也在性能上是可接受的。
  • -validity 设置证书的有效期,这里是 3650 天,即大约 10 年。
  • -keystore 指定密钥库文件的名称和位置。
可选操作:将 jks 密钥库转为 pkcs12 类型。
shell 复制代码
keytool -importkeystore -srckeystore www.example.com.jks -destkeystore www.example.com.pkcs12 -deststoretype pkcs12

配置 SpringBoot

将生成的 jks 或者 pkcs12 文件放到项目的 src/main/resources 目录下,在项目的 application.yml 配置文件中添加以下内容:

yml 复制代码
# 开启 SSL
server.ssl.key-store: classpath:www.example.com.jks
server.ssl.key-store-password: 123456
server.ssl.key-store-type: JKS
server.ssl.key-alias: www.example.com

如果是 pkcs12 密钥库:

yml 复制代码
# 开启 SSL
server.ssl.key-store: classpath:www.example.com.pkcs12
server.ssl.key-store-password: 123456
server.ssl.key-store-type: PKCS12
server.ssl.key-alias: www.example.com

这时候启动 springboot 如果读取密钥库报错,大概率是 maven 对密钥文件进行了重新编码导致的,需要将密钥文件排除。在 pom.xml 文件中添加以下代码:

xml 复制代码
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
            <nonFilteredFileExtensions>
                <nonFilteredFileExtension>jks</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
        </configuration>
    </plugin>
</plugins>

如果是 pkcs12 密钥库:

xml 复制代码
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
            <nonFilteredFileExtensions>
                <nonFilteredFileExtension>pkcs12</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
        </configuration>
    </plugin>
</plugins>
相关推荐
NHuan^_^37 分钟前
SpringBoot3 整合 SpringAI 实现ai助手(记忆)
java·人工智能·spring boot
Soofjan40 分钟前
Go 内存回收-GC 源码1-触发与阶段
后端
shining43 分钟前
[Golang]Eino探索之旅-初窥门径
后端
掘金者阿豪1 小时前
Mac 程序员效率神器:6 个我每天都在用的 Mac 工具推荐(Alfred / Paste / PixPin / HexHub / iTerm2 /)
后端
小村儿1 小时前
连载04-CLAUDE.md ---一起吃透 Claude Code,告别 AI coding 迷茫
前端·后端·ai编程
han_hanker1 小时前
springboot 一个请求的顺序解释
java·spring boot·后端
2501_921649491 小时前
原油期货量化策略开发:历史 K 线获取、RSI、MACD 布林带计算到多指标共振策略回测
后端·python·金融·数据分析·restful
杰克尼1 小时前
SpringCloud_day05
后端·spring·spring cloud
MaCa .BaKa1 小时前
44-校园二手交易系统(小程序)
java·spring boot·mysql·小程序·maven·intellij-idea·mybatis
ServBay1 小时前
阿里超强编程模型Qwen 3.6 -Plus 发布,国产编程AI的春天?
后端·ai编程