Spring Boot 应用程序配置 SSL/TLS

在 Spring Boot 应用程序中配置 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)可以确保数据在客户端和服务器之间传输时的安全性。SSL/TLS 通过加密通信来保护数据的机密性和完整性。

生成自签名证书

在开发环境中,通常使用自签名证书来配置 SSL。以下是生成自签名证书的步骤:

1、使用 JDK 的 keytool 工具生成证书:
keytool -genkeypair -alias myapp -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore myapp.p12 -validity 3650

这条命令会生成一个名为 myapp.p12PKCS12 格式的密钥库文件,有效期为 10 年(3650 天)。

2、设置密码: 在生成过程中,keytool 会提示你输入密钥库密码和密钥密码。请记住这些密码,因为稍后在 Spring Boot 配置中会用到。

配置 Spring Boot 应用程序

在 Spring Boot 应用程序中配置 SSL 需要修改 application.propertiesapplication.yml 文件。

使用 application.properties
# HTTPS通常使用443端口,但8443是常用的测试端口
server.port=8443
server.ssl.key-store=classpath:myapp.p12
server.ssl.key-store-password=your_keystore_password
server.ssl.key-password=your_key_password
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=myapp
使用 application.yml
server:
  # HTTPS通常使用443端口,但8443是常用的测试端口
  port: 8443
  ssl:
    key-store: classpath:myapp.p12
    key-store-password: your_keystore_password
    key-password: your_key_password
    key-store-type: PKCS12
    key-alias: myapp

验证 SSL 配置

启动 Spring Boot 应用程序后,可以通过以下方式验证 SSL 配置是否成功:

  • 1、浏览器访问: 打开浏览器并访问 https://localhost:8443 。由于使用的是自签名证书,浏览器会提示证书不受信任,但你可以继续访问。
  • 2、使用 curl 命令
    curl -k https://localhost:8443
    使用 -k 选项可以忽略证书验证错误。

生产环境中的 SSL 配置

在生产环境中,建议使用由受信任的证书颁发机构(CA)签发的证书。以下是配置步骤:

  • 1、获取证书: 从受信任的 CA 获取 SSL 证书。
  • 2、配置证书: 将证书文件(通常是 .crt.pem 格式)和私钥文件(通常是 .key 格式)放置在 Spring Boot 应用程序的资源目录中。
  • 3、更新配置文件: 根据证书文件的格式和位置,更新 application.propertiesapplication.yml 文件。
作者:Jeebiz  创建时间:2024-11-05 12:46
最后编辑:Jeebiz  更新时间:2024-11-05 12:46