Chinaunix首页 | 论坛 | 博客
  • 博客访问: 560407
  • 博文数量: 36
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1749
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-20 16:13
个人简介

中国科学院大学计算机硕士,曾在新浪爱彩数据库组带DBA团队,现居新加坡。wx: lihui_dba

文章分类

全部博文(36)

文章存档

2020年(2)

2019年(3)

2017年(7)

2016年(1)

2015年(7)

2014年(11)

2013年(5)

分类: Mysql/postgreSQL

2020-04-10 20:04:17

第一步:
在master上运行命令mysql_ssl_rsa_setup,会在MySQL data目录生成如下几个文件:

点击(此处)折叠或打开

  1. -rw------- 1 mysql mysql 1675 Apr 10 11:30 ca-key.pem # CA 私钥
  2. -rw-r--r-- 1 mysql mysql 1082 Apr 10 11:30 ca.pem # 自签的CA证书,客户端连接也需要提供
  3. -rw-r--r-- 1 mysql mysql 1086 Apr 10 11:30 client-cert.pem # 客户端连接服务端需要提供的证书文件
  4. -rw------- 1 mysql mysql 1675 Apr 10 11:30 client-key.pem #客户端连接服务端需要提供的私钥文件
  5. -rw------- 1 mysql mysql 1679 Apr 10 11:30 private_key.pem #私钥公钥的私有成员
  6. -rw-r--r-- 1 mysql mysql 451 Apr 10 11:30 public_key.pem #私钥公钥的共有成员
  7. -rw-r--r-- 1 mysql mysql 1086 Apr 10 11:30 server-cert.pem #服务端证书文件
  8. -rw------- 1 mysql mysql 1679 Apr 10 11:30 server-key.pem #服务端私钥文件

第二步:
在master上检查SSL是否开启

点击(此处)折叠或打开

  1. mysql> show global variables like '%ssl%';
  2. +---------------+-----------------+
  3. | Variable_name | Value |
  4. +---------------+-----------------+
  5. | have_openssl | YES |
  6. | have_ssl | YES |
  7. | ssl_ca | ca.pem |
  8. | ssl_capath | |
  9. | ssl_cert | server-cert.pem |
  10. | ssl_cipher | |
  11. | ssl_crl | |
  12. | ssl_crlpath | |
  13. | ssl_key | server-key.pem |
  14. +---------------+-----------------+
  15. 9 rows in set (0.00 sec)

第三步:
在master上配置my.cnf,然后重启服务

点击(此处)折叠或打开

  1. ssl-ca = /etc/mysql/ssl/ca.pem
  2. ssl-cert = /etc/mysql/ssl/server-cert.pem
  3. ssl-key = /etc/mysql/ssl/server-key.pem


第四步:
在master上把replication的账号的权限改下,强制SSL

点击(此处)折叠或打开

  1. mysql> alter user 'rep'@'xx' REQUIRE SSL;


第五步:
把master上的ssl文件上传到slave的相同目录,修改my.cnf,然后重启服务。

第六步:
在slave上执行change master命令

点击(此处)折叠或打开

  1. change master to
  2. master_host='master_ip',
  3. master_user='rep',
  4. master_password='xxx',
  5. master_port=3306,
  6. MASTER_AUTO_POSITION = 1,
  7. MASTER_SSL=1,
  8. MASTER_SSL_CA='/etc/mysql/ssl/ca.pem',
  9. MASTER_SSL_CERT = '/etc/mysql/ssl/client-cert.pem',
  10. MASTER_SSL_KEY = '/etc/mysql/ssl/client-key.pem';

第七步:
如果连接有问题,需要验证的话,在slave上运行如下命令:

点击(此处)折叠或打开

  1. mysql -h master -u rep -P 3306 --ssl --ssl-ca "ca.pem" --ssl-cert "client-cert.pem" --ssl-key "client-key.pem" -p
如果SSL正常,在MySQL命令提示符下输入'\s',能看到
SSL: Cipher in use in DHE-RSA-AES256-SHA
而不是SSL: Not in use


阅读(7268) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~