Spring Boot 配置 SSL 证书完整教程
作者
2026-07-12
发布日期
约 4 分钟
阅读时间
本文讲解 Spring Boot 配置 SSL 证书的完整流程,支持 application.yml 和 application.properties 两种配置方式。
创建 PKCS#12 文件
openssl pkcs12 -export \
-out application.p12 \
-inkey privkey.pem \
-in server.crt \
-certfile chain.pem \
-name springboot
检查:
keytool -list -v \
-storetype PKCS12 \
-keystore application.p12
确认别名为 springboot,类型为 PrivateKeyEntry。
生产环境建议把文件放在应用外部:
/etc/myapp/tls/application.p12
application.yml 配置
server:
port: 8443
ssl:
enabled: true
key-store: file:/etc/myapp/tls/application.p12
key-store-type: PKCS12
key-store-password: ${SSL_KEY_STORE_PASSWORD}
key-alias: springboot
enabled-protocols: TLSv1.2,TLSv1.3
启动前设置密码:
export SSL_KEY_STORE_PASSWORD='实际密码'
java -jar app.jar
不要把真实密码直接提交到 application.yml。生产环境应使用部署平台 Secret、systemd 凭据或云密钥管理服务。
application.properties 写法
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=file:/etc/myapp/tls/application.p12
server.ssl.key-store-type=PKCS12
server.ssl.key-store-password=${SSL_KEY_STORE_PASSWORD}
server.ssl.key-alias=springboot
server.ssl.enabled-protocols=TLSv1.2,TLSv1.3
验证
curl -I https://example.com:8443
openssl s_client \
-connect example.com:8443 \
-servername example.com \
-showcerts
常见错误
- •Alias name does not identify a key entry:别名不正确,或条目不是私钥条目
- •password was incorrect:密钥库密码错误
- •浏览器提示证书链不完整:生成 P12 时遗漏了 chain.pem
替换外部 P12 后,通用且可靠的做法是滚动重启 Spring Boot 应用。
—
本文到此结束
—