ITPub博客

首页 > 数据库 > > MySQL5.7配置SSL复制

MySQL5.7配置SSL复制

作者:362931297 时间:2020-04-10 20:08:00 0 删除 编辑

第一步:
在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 (.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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26950862/viewspace-3164642/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-19

  • 博文量
    6
  • 访问量
    34