windwos下mysql开启ssl

发布时间 2023-10-30 12:03:01作者: gzhq

1.下载openssl

https://slproweb.com/products/Win32OpenSSL.html

2.配置openssl到环境变量

 3.创建证书及密钥

mysql_ssl_rsa_setup.exe --datadir=d:/app/mysql/certs --verbose

参数说明
-d, --datadir=name 数据目录路径
-?, --help 显示帮助信息并退出
-s, --suffix=name X.509 证书通用名称属性的后缀
–uid=name 用于文件权限的有效用户的名称
-v, --verbose 详细模式
-V, --version 显示版本信息并退出

4.生成的证书及密钥文件

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 服务器端私钥文件

 4.修改mysql配置文件,在[mysqld]节点下添加

ssl-ca=d:/app/mysql/certs/ca.pem   
ssl-cert=d:/app/mysql/certs/server-cert.pem
ssl-key=d:/app/mysql/certs/server-key.pem

5.重启mysql服务

6.创建ssl登录用户

CREATE USER `sslroot`@`%` IDENTIFIED WITH mysql_native_password BY '123456' REQUIRE SSL PASSWORD EXPIRE NEVER;

7.使用ssl用户登录

 8.查看mysql是否使用ssl

show variables like '%ssl%';

9.ssl-mode模式说明

在没有–ssl-mode选项的情况下 ,客户端尝试使用加密进行连接,如果无法建立加密连接,则回退到未加密的连接。这也是具有显式–ssl-mode=PREFFERED选项的行为 。
使用–ssl-mode=REQUIRED,客户端需要加密连接,如果无法建立连接则失败。
使用–ssl-mode=DISABLED,客户端使用未加密的连接。
使用–ssl-mode=VERIFY_CA 或 --ssl-mode=VERIFY_IDENTITY,客户端需要加密连接,并且还针对服务器 CA 证书和(使用 VERIFY_IDENTITY)针对其证书中的服务器主机名执行验证。