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

如何创建SSL证书并在Spring Boot中配置?加载certificate.p12报错如何解决

问题排查解决步骤
  • 第一步:修正openssl证书生成命令,重新生成证书
    你当前的第二条openssl命令存在换行拆分错误,-name参数是pkcs12导出命令的一部分,不能单独拆行,执行以下完整命令重新生成证书,导出密码统一设置为12345:
openssl req -newkey rsa:2048 -x509 -keyout key.pem -out cert.pem -days 365 -nodes
openssl pkcs12 -export -in cert.pem -inkey key.pem -out certificate.p12 -name "certificate"

执行第二条命令时,提示输入导出密码,直接输入12345确认即可,新增的-nodes参数可避免生成的key.pem带额外加密密码,减少后续导出异常。

  • 第二步:修正application.properties配置项
    你当前缺少密钥别名配置,且容易混淆密钥库密码和密钥密码两个配置项,修改为以下配置:
server.port=8088
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:certificate.p12
server.ssl.key-store-password=12345
server.ssl.key-password=12345
server.ssl.key-alias=certificate
  • 第三步:检查证书文件是否被正确打包到类路径
    将新生成的certificate.p12放到resources目录后,先执行mvn clean compile命令,检查项目的target/classes目录下是否存在certificate.p12文件。如果不存在,检查pom.xml的资源过滤配置,避免p12二进制文件被过滤损坏,可添加如下配置排除p12文件的过滤:
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <excludes>
                <exclude>**/*.p12</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>false</filtering>
            <includes>
                <include>**/*.p12</include>
            </includes>
        </resource>
    </resources>
</build>
  • 第四步:验证证书本身有效性
    打开命令行进入certificate.p12所在目录,执行JDK自带的keytool命令验证证书是否正常:
keytool -list -keystore certificate.p12 -storetype PKCS12

输入密码12345后如果能正常显示证书别名、创建时间等信息,说明证书本身没有问题。

完成以上步骤后重新启动项目即可正常加载密钥库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:06:06