当使用非加密方式连接MySQL数据库时,在网络中传输的所有信息都是明文的,可以被网络中所有人截取,敏感信息可能被泄露。在传送敏感信息(如密码)时,可以采用SSL连接的方式。
一、配置MySQL服务端支持SSL连接
1. MySQL 5.7.6以前版本的配置方法:
a. 使用命令手工创建SSL文件:
# pwd
/data/mysql562
# mkdir certs
# cd certs
创建CA文件:
# openssl genrsa 2048 > ca-key.pem
# openssl req -new -x509 -nodes -days 3600 \
> -key ca-key.pem -out ca.pem
创建服务端公钥和私钥:
# openssl req -newkey rsa:2048 -days 3600 \
> -nodes -keyout server-key.pem -out server-req.pem
# openssl rsa -in server-key.pem -out server-key.pem
# openssl x509 -req -in server-req.pem -days 3600 \
> -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
创建客户端公钥和私钥:
# openssl req -newkey rsa:2048 -days 3600 \
> -nodes -keyout client-key.pem -out client-req.pem
# openssl rsa -in client-key.pem -out client-key.pem
# openssl x509 -req -in client-req.pem -days 3600 \
> -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
# chown mysql.mysql -R /data/mysql562/certs
检查创建的文件:
# ll
-rw-r--r--. 1 mysql mysql 1679 3月 10 11:44 ca-key.pem
-rw-r--r--. 1 mysql mysql 1220 3月 10 11:44 ca.pem
-rw-r--r--. 1 mysql mysql 1090 3月 10 11:49 client-cert.pem
-rw-r--r--. 1 mysql mysql 1675 3