You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.1.4:如何配置带密码的PEM格式RSA私钥证书?

问题

使用win-acme生成SSL证书后,在Spring Boot v3.1.4中部署时,无密码的私钥可正常运行,但为提升安全性改用带密码加密的RSA私钥,配置完证书、私钥并设置application.yml后,系统提示“Unrecognized private key format”错误。请问仅通过application.yml配置能否实现该需求?

报错信息

Caused by: java.lang.IllegalStateException: Error loading private key file: Unrecognized private key format
        at org.springframework.boot.ssl.pem.PemPrivateKeyParser.parse(PemPrivateKeyParser.java:200)
        at org.springframework.boot.ssl.pem.PemSslStoreBundle.createKeyStore(PemSslStoreBundle.java:92)
        ... 24 common frames omitted
Caused by: java.lang.IllegalStateException: Unrecognized private key format
        at org.springframework.boot.ssl.pem.PemPrivateKeyParser.parse(PemPrivateKeyParser.java:197)
        ... 25 common frames omitted

当前application.yml配置

server:
  port: ${PORT}
  ssl:
    certificate: C:\cert\crt.pem
    certificate-private-key: C:\cert\key.pem
    key-store-password: 1234567890

私钥开头内容

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC
解决方案

仅通过application.yml配置无法直接解决这个问题,原因和处理方式如下:

  • 格式不兼容:Spring Boot v3.1.x的PEM解析器PemPrivateKeyParser不支持传统BEGIN RSA PRIVATE KEY格式的加密私钥,它仅支持PKCS#8格式(BEGIN ENCRYPTED PRIVATE KEY)的加密私钥。你的私钥是传统的RSA加密格式,因此触发格式识别错误。

  • 处理步骤:

    1. 转换私钥格式:使用OpenSSL将现有加密私钥转换成PKCS#8格式,执行命令:
      openssl pkcs8 -topk8 -in key.pem -out encrypted-key-pkcs8.pem -v2 aes-256-cbc
      
      执行时需输入原私钥密码,之后可设置新密码(也可沿用原密码)。
    2. 修改配置文件:将application.yml中的certificate-private-key指向转换后的PKCS#8格式私钥,保留key-store-password配置(填写私钥的加密密码):
      server:
        port: ${PORT}
        ssl:
          certificate: C:\cert\crt.pem
          certificate-private-key: C:\cert\encrypted-key-pkcs8.pem
          key-store-password: 1234567890
      

完成上述操作后,Spring Boot即可正确识别并加载带密码的加密私钥。

内容的提问来源于stack exchange,提问作者fudge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:32:37