赞
踩
ssl认证可以让让数据传输更加安全
实验环境: 两台centos 7.2,一台mysql服务器,一台客户端
为了方便实验,CA证书也在mysql服务器上
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/
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
实验环境:
两台mysql服务器
一台CA服务器
实验之前请先关闭防火墙和SELinux
实验如下:
2,配置主从服务器的mysql的key和公钥,然后在CA上签署证明(主从服务器配置相同)
3,将csr复制到CA上进行签证(主从都要做同样的操作),签完证之后连同CA的公钥一起复制到主从服务器
4,配置主服务的mysql相关信息
vim /etc/my.cnf
5,启动服务,发现有错误,如下,检查为权限问题
6,启动mysql成功后,检查ssl是否成功
7,授权
grant replication client,replication slave on *.* to 'repluser'@'192.168.153.%' identified by 'replpass';
8,查看binlog信息,记录binlog的文件和事件位置,为从服务器配置负责数据做准备
9,配置从服务器
vim /etc/my.cnf
10,启动从服务器,并开始连接主服务器
change master to master_host='192.168.153.128',master_user='repluser',master_password='replpass',master_log_file='master-log.000006',master_log_pos=499,master_ssl_ca='/etc/mysqlssl/cacert.pem',master_ssl_cert='/etc/mysqlssl/mysql.crt',master_ssl_key='/etc/mysqlssl/mysql.key';
10,查看数据同步状态
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。