一、首先查看是否开启ssl
SHOW VARIABLES LIKE '%ssl%'
DISABLED表示未开启
二、安装openssl
1.源码安装
官网 https://www.openssl.org/ 下载源码,根据网上的教程完成安装。
2.其他人做的安装包安装
Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
我安装的是1.1.1q
三、生成证书和密钥
进入mysql/bin目录下,执行mysql_ssl_rsa_setup生成生成证书和密钥
通过-d或者--datadir可以指定数据文件目录
mysql_ssl_rsa_setup.exe -d D:/Database/mysql
其中
ca.pem: CA证书
ca-key.pem:CA证书密钥
client-cert.pem:客户端使用的证书
client-key.pem:客户端使用的密钥
private_key.pem:私钥
public_key.pem:公钥
server-cert.pem:服务端使用的证书
server-key.pem:服务端使用的密钥
四、配置my.ini添加ssl
配置完成后重启mysql,此时再查看变量,发现已经开启ssl,并且设置了证书信息
五、测试连接
1.navicat测试
2.springboot连接测试
首先将ca.pem和client-cert.pem转为jks
根证书转换
openssl pkcs12 -export -in ca.pem -inkey ca-key.pem -out ca.p12 -passout pass:123456
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore ca.jks -deststoretype PKCS12 -srckeystore ca.p12 -srcstoretype PKCS12 -srcstorepass 123456
client证书转换
openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -out client.p12 -passout pass:123456
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore client.jks -deststoretype PKCS12 -srckeystore client.p12 -srcstoretype PKCS12 -srcstorepass 123456
springboot添加ssl配置
ssl:
path: D:/Database/mysql
trustCertificateKeyStoreUrl: file:${ssl.path}/ca.jks
trustCertificateKeyStorePassword: 123456
clientCertificateKeyStoreUrl: file:${ssl.path}/client.jks
clientCertificateKeyStorePassword: 123456
# config: false
config: "true&verifyServerCertificate=true&requireSSL=true\
&trustCertificateKeyStoreUrl=${ssl.trustCertificateKeyStoreUrl}\
&trustCertificateKeyStorePassword=${ssl.trustCertificateKeyStorePassword}\
&clientCertificateKeyStoreUrl=${ssl.clientCertificateKeyStoreUrl}\
&clientCertificateKeyStorePassword=${ssl.clientCertificateKeyStorePassword}"
再将整个配置到useSSL
如果正常启动表示设置成功。
完