SpringBoot + MySQL 实现 SSL 连接配置
一、获取SSL证书文件
Windows用户操作步骤:
- 打开PowerShell窗口
- 依次执行以下命令下载证书:
scp root@服务器IP:/etc/mysql-ssl/ca.pem D:\certs scp root@服务器IP:/etc/mysql-ssl/server-cert.pem D:\certs scp root@服务器IP:/etc/mysql-ssl/server-key.pem D:\certs
二、转换证书格式
操作步骤:
- 打开命令提示符(cmd)
- 生成信任证书库:
keytool -importcert -alias Cacert -file ca.pem -keystore mysql-truststore -storepass 你的密码
- 生成密钥库:
keytool -importkeystore -srckeystore mysql-truststore -destkeystore mysql-keystore -deststoretype pkcs12
注意:执行后会提示设置新密码
三、放置证书文件
将生成的这两个文件放入项目:
mysql-truststore(信任证书库)mysql-keystore(密钥库)
存放位置:项目的resources文件夹下

四、建立安全连接通道
执行命令:
ssh -N -L 63306:127.0.0.1:3306 root@服务器IP
说明:这样可以通过本地的63306端口安全访问服务器的MySQL服务。而127.0.0.1:3306 是执行docker容器时,我设置了MySQL 容器默认只能通过服务器本机(127.0.0.1)连接,如果执行容器没有限制ip地址,则可以使用公网ip。
五、配置Spring Boot
在application.yml中添加配置:
spring:
datasource:
url: jdbc:mysql://127.0.0.1:63306/数据库名?useSSL=true&
trustCertificateKeyStoreUrl=file:证书路径&
trustCertificateKeyStorePassword=你的密码&
clientCertificateKeyStoreUrl=file:证书路径&
clientCertificateKeyStorePassword=你的密码
username: 数据库用户名
password: 数据库密码
关键点说明:
useSSL=true表示启用SSL加密- 两个证书路径要替换为实际存放位置
- 密码要保持一致
- 路径必须是绝对路径,例:
clientCertificateKeyStoreUrl=file:B:\xxx\src\main\resources\mysql-ssl\mysqlkeystore
这样就完成了MySQL的SSL安全连接配置!
到此这篇关于SpringBoot + MySQL 实现 SSL 连接配置的文章就介绍到这了,更多相关SpringBoot MySQL SSL连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
- springboot配置mysql数据库spring.datasource.url报错的解决
- 解决springboot 连接 mysql 时报错 using password: NO的方案
- SpringBoot连接MYSQL数据库并使用JPA进行操作
- Springboot整合camunda+mysql的集成流程分析
- SpringBoot多数据库连接(mysql+oracle)的实现
- 详解如何在SpringBoot中配置MySQL数据库的连接数
- IDEA创建SpringBoot项目整合mybatis时mysql-connector-java报错异常的详细分析
- Springboot + Mysql8实现读写分离功能
- springboot配置mysql连接的实例代码
相关文章
SpringDataJpa的使用之一对一、一对多、多对多 关系映射问题
这篇文章主要介绍了SpringDataJpa的使用 -- 一对一、一对多、多对多关系映射,本文主要讲述 @OneToOne、@OneToMany、@ManyToOne、@ManyToMany 这四个关系映射注解的使用,以及其对应的级联关系,需要的朋友可以参考下2022-07-07


最新评论