Mysql开启ssl加密协议及Java客户端配置操作指南

时间:2022-12-09 13:55:18


Mysql开启ssl加密协议及Java客户端配置操作指南

  • ​​Mysql配置​​
  • ​​验证Mysql开启SSL​​
  • ​​Java客户端操作​​
  • ​​生成证书密码​​
  • ​​配置数据库连接​​
  • ​​工具配置​​

Mysql配置

Mysql需要配置对应的ssl账号密码,同时对该账号开启ssl验证,具体操作由DBA完成,这里我就不再赘述,作为Java客户端只需要拿到DBA配置的账号对应的ca.pem证书信息即可开启后面的操作。

验证Mysql开启SSL

验证命令

show global variables like '%ssl%';

验证结果如图

Mysql开启ssl加密协议及Java客户端配置操作指南


Mysql开启ssl加密协议及Java客户端配置操作指南


开启ssl协议之后可以看到对应Mysql服务器的证书路径,拿到证书文件后放在windows本地目录等待下一步操作

Mysql开启ssl加密协议及Java客户端配置操作指南

Java客户端操作

这里我测试本地windows环境的操作,linux的操作基本相同,只是文件路径的区别而已

生成证书密码

首先需要基于上一步Mysql配置完ssl账户生成对应的ca.pem证书,通过jvm的keytool工具将ca.pem证书放入到truststore仓库中;
windows操作系统可以直接在上一步存放ca.pem证书的目录通过快捷键【Ctrl+Shift+鼠标右键】唤起Powershell窗口,执行命令

keytool -importcert -alias MySQLCACert -file ca.pem -keystore truststore -storepass 123456

其中:truststore 是存储证书的密钥库,123456是密钥库口令

Mysql开启ssl加密协议及Java客户端配置操作指南


生成之后可以查看一下是否生成成功,操作命令

keytool -list -keystore truststore

输入密钥库口令之后可以看到证书信息

Mysql开启ssl加密协议及Java客户端配置操作指南


回到唤起Powershell窗口的文件夹(即存放ca.pem)的文件夹下可以看到生成的证书密钥库文件truststore,如图

Mysql开启ssl加密协议及Java客户端配置操作指南


这样证书密码就算生成成功了,证书密码路径为: E:\2022mycomputer\mysql_cert\truststore

配置数据库连接

数据库连接如下

datasource.masterUrl=jdbc:mysql://127.0.0.1:3306/ei_app?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&verifyServerCertificate=true&requireSSL=true&sslMode=verify_ca&trustCertificateKeyStoreUrl=file:E:/2022mycomputer/mysql_cert/truststore&trustCertificateKeyStorePassword=123456

参数说明:

Mysql开启ssl加密协议及Java客户端配置操作指南


配置完成之后再使用对应ca.pem证书的账户密码即可以正常连接Mysql了

工具配置

这里举例工具为navicat ,个人测试的navicat 15可以通过ssl连接数据库,navicat 11 连接不成功,连接操作如图

Mysql开启ssl加密协议及Java客户端配置操作指南


配置SSL证书信息

Mysql开启ssl加密协议及Java客户端配置操作指南


配置完成之后点击连接测试,如果你当前的navicat版本支持SSL连接的话会提示

Mysql开启ssl加密协议及Java客户端配置操作指南


如果配置没有问题但是连接测试提示失败的,那就是当前版本的navicat 不支持SSL连接

可以升级navicat到高的版本即可.