MySQL之:复制加密

2020-04-03  本文已影响0人  Simon_Ye

基于 SSL 复制

在默认的主从复制过程或远程连接到 MySQL/MariaDB所有的链接通信中的数据都是文明的,外网里访问数据或者复制,存在安全隐患。通过 SSL/TLS 加密的方式进行复制的方法,来进一步提高数据的安全性

配置实现:

参看:https://mariadb.com/kb/en/library/replication-with-secure-connections/


步骤

搭建CA

my.cnf.d/ssl]# openssl genrsa 2048 > cakey.pem
my.cnf.d/ssl]# openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650

给 master 一次性生成私钥文件和证书申请文件,并且CA进行签名:

my.cnf.d/ssl]# openssl req -newkey rsa:2048 -days 365 -nodes -keyout master.key > master.csr
my.cnf.d/ssl]# openssl -req x509 -in master.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 > master.crt

给 slave 一次性生成私钥文件和证书申请文件,并且CA进行签名:

my.cnf.d/ssl]# openssl req -newkey rsa:2048 -days 365 -nodes -keyout slave.key > slave.csr
my.cnf.d/ssl]# openssl -req x509 -in slave.csr -CA cacert.pem -CAkey cakey.pem -set_serial 02 > slave.crt

验证证书:

my.cnf.d/ssl]# openssl verify -CAfile cacert.pem master.crt slave.crt

分别复制相应文件给主和从服务器

在 Master 服务器上配置

[mysqld]
log_bin
server_id=1
ssl
ssl-ca=/etc/my.cnf.d/ssl/cacert.pem
ssl-cert=/etc/my.cnf.d/ssl/master.crt
ssl-key=/etc/my.cnf.d/ssl/master.key
# 创建加密账号
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'192.168.30.%' IDENTIFIED BY 'centos' REQUIRE ssl;

在 Slave 服务器上配置

上一篇 下一篇

猜你喜欢

热点阅读