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

如何获取可信SSL证书并配置到Spring Boot API中?

解决Spring Boot 3配置可信SSL证书的方案

一、获取可信SSL证书

推荐使用免费的Let's Encrypt证书,针对Ubuntu 24.04的操作步骤如下:

  • 安装Certbot工具:
    sudo apt update && sudo apt install certbot
    
  • 生成证书(替换your-domain.com为你的实际域名,确保80端口未被其他服务占用):
    sudo certbot certonly --standalone -d your-domain.com
    
  • 证书生成后默认存放在/etc/letsencrypt/live/your-domain.com/目录,核心文件包括:
    • fullchain.pem:包含完整证书链的证书文件
    • privkey.pem:证书对应的私钥文件

二、转换证书为Spring Boot支持的PKCS12格式

Spring Boot原生支持PKCS12格式密钥库,需将Let's Encrypt的PEM格式证书转换为此格式:

  • 执行转换命令(替换路径和自定义别名,设置并牢记密钥库密码):
    openssl pkcs12 -export -in /etc/letsencrypt/live/your-domain.com/fullchain.pem -inkey /etc/letsencrypt/live/your-domain.com/privkey.pem -out keystore.p12 -name spring-boot-ssl
    

三、配置Spring Boot应用

修改项目的application.properties文件,添加以下SSL配置项:

server.port=443
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
# 若将keystore.p12放入项目src/main/resources目录,使用classpath路径;否则填写服务器绝对路径
server.ssl.key-store=classpath:keystore.p12
# 替换为生成PKCS12时设置的密码
server.ssl.key-store-password=your-keystore-password
# 替换为生成PKCS12时设置的别名
server.ssl.key-alias=spring-boot-ssl

四、部署与验证

  • 将keystore.p12放置到对应路径:若打包成JAR包,放入resources目录后重新打包;若直接在服务器运行,放到指定路径并配置绝对路径
  • 重启Spring Boot应用,确保服务器443端口已开放(Ubuntu可执行sudo ufw allow 443)
  • 浏览器访问https://your-domain.com,此时证书会被浏览器自动信任,无需手动添加信任

额外注意事项

  • Let's Encrypt证书有效期为90天,可设置自动续签:
    # 先测试续签命令是否正常
    sudo certbot renew --dry-run
    # 添加定时任务自动续签(每天中午12点执行)
    crontab -e
    # 在文件中加入以下内容
    0 12 * * * /usr/bin/certbot renew --quiet
    
  • 若使用Nginx反向代理,也可以让Nginx处理SSL终止,Spring Boot应用内部走HTTP,这种方式更便于证书管理和多应用部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:30:02