mysql 基于ssl认证
为了让数据传输更加安全,因此
实验环境: 两台centos 7.2,一台mysql服务器,一台客户端
为了方便实验,CA证书也在mysql服务器上
服务端操作(192.168.153.128)
1,先安装mariadb和OpenSSL
yum install mariadb-server openssl -y
2,配置证书
cd /etc/pki/CA/ touch index.txt echo 01 > serial
(umask 066;openssl genrsa -out private/cakey.pem 4096)
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3600
mkdir /var/lib/mysql/ssl #创建mysql的私钥等的目录 cd /var/lib/mysql/ssl
(umask 066;openssl genrsa -out mysql.key 2048)
openssl req -new -key mysql.key -days 365 -out mysql.csr
openssl ca -in mysql.csr -out mysql.crt -days 365
3,修改mariadb配置文件
vim /etc/my.cnf
innodb_file_per_table=ON skip_name_resolve=ON ssl ssl-ca=/etc/pki/CA/cacert.pem ssl-cert=/var/lib/mysql/ssl/mysql.crt ssl-key=/var/lib/mysql/ssl/mysql.key
4,修改权限,否则ssl 会失败(可以通过log得知该信息)
setfacl -m u:mysql:rwx /var/lib/mysql/ssl/mysql.key
5,重启服务
6,授权一个需要ssl访问的用户
grant all on *.* to 'xixi'@'192.168.153.129' identified by 'xixi' require ssl; flush privileges;
7,将配置文件复制到mysql客户端
scp /etc/pki/CA/cacert.pem 192.168.153.129:/etc/mysqlssl/ scp /var/lib/mysql/ssl/* 192.168.153.129:/etc/mysqlssl/
mysql客户端操作
8,测试访问
yum install mariadb -y
mysql -uxixi -pxixi -h192.168.153.128 --ssl-ca=/etc/mysqlssl/cacert.pem --ssl-cert=/etc/mysqlssl/mysql.crt --ssl-key=/etc/mysqlssl/mysql.key
10,为了方便访问
也可以将ssl信息写在配置文件中
vim /etc/my.cnf
[mysql] ssl-ca=/etc/mysqlssl/cacert.pem ssl-cert=/etc/mysqlssl/mysql.crt ssl-key=/etc/mysqlssl/mysql.key