springboot 项目 application.yml 数据库连接 增加证书配置
时间: 2025-03-06 22:47:25 浏览: 65
### 配置 SSL 证书用于数据库连接
在 Spring Boot 应用程序中配置 SSL 数据库连接涉及多个方面。为了确保应用程序能够通过安全的方式访问数据库,通常需要指定特定的属性来启用并配置 SSL 连接。
对于大多数关系型数据库而言,在 `application.yml` 文件中的数据源配置部分可以加入与 SSL 相关的参数。下面是一个针对 MySQL 和 PostgreSQL 的通用方法:
#### 对于 MySQL 数据库
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb?useSSL=true&requireSSL=true&verifyServerCertificate=false
username: root
password: secret
driver-class-name: com.mysql.cj.jdbc.Driver
```
这里的关键在于 JDBC URL 后面附加了几个查询字符串参数[^1]:
- `useSSL=true`: 表示开启 SSL;
- `requireSSL=true`: 要求必须使用 SSL 加密通信;
- `verifyServerCertificate=false`: 不验证服务器端提供的证书(生产环境中应谨慎考虑这一点);
如果要提供自定义的信任存储文件,则可以在 JVM 参数里添加 `-Djavax.net.ssl.trustStore=/path/to/truststore.jks -Djavax.net.ssl.trustStorePassword=trustStorePassword` 或者直接修改驱动器加载方式以支持更复杂的场景。
#### 对于 PostgreSQL 数据库
```yaml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/mydb?sslmode=require
ssl:
factory: org.postgresql.ssl.DefaultJavaSSLFactory
trust-store-type: JKS
trust-store: /path/to/client-truststore.jks
trust-store-password: changeit
username: postgres
password: mysecretpassword
```
在这个例子中,除了基本的数据源信息外,还特别指定了 SSL 设置[^2]:
- 使用 `sslmode=require` 来强制客户端和服务端之间的 SSL/TLS 协议握手过程;
- 提供了一个 Java 密钥库 (JKS) 格式的信任商店路径及其密码作为额外的安全措施;
请注意,实际部署时应当根据具体需求调整这些选项,并遵循最佳实践指南来进行安全性评估和优化。
阅读全文
相关推荐















