mariadb實現主從加密通訊的詳細步驟
阿新 • • 發佈:2019-05-10
show variable dir 使用 啟動 查看 out req word mariadb實現主從加密通訊的詳細步驟
1. 實驗環境:
A. 3臺centos7服務器,mariadb版本:5.5.60
B. 服務器角色:
a) master節點:192.168.36.121
b) slave節點:192.168.36.120
c) CA服務器:192.168.36.47
2. 具體步驟:
A. CA服務器:
a) 創建存放證書和私鑰的目錄
mkdir -p /etc/my.cnf.d/ssl
b) 生成CA私鑰
cd /etc/my.cnf.d/ssl ( umask 0666;openssl genrsa 2048 > cakey.pem )
c) 生成自簽名證書
openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650
d) 查看自簽名證書
openssl x509 -in cacert.pem -noout -text
e) 生成master私鑰和證書申請
openssl req -newkey rsa:1024 -days 365 -nodes -keyout master.key > master.csr
f) 給master頒發證書
openssl x509 -req -in master.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 > master.crt
g) 查看master證書
openssl x509 -in master.crt -noout -text
h) 生成slave私鑰和證書申請
openssl req -newkey rsa:1024 -days 365 -nodes -keyout slave.key > slave.csr
i) 給slave頒發證書
openssl x509 -req -in slave.csr -CA cacert.pem -CAkey cakey.pem -set_serial 02 > slave.crt
j) 查看slave證書
openssl x509 -in master.crt -noout -text
k) 把CA自簽名證書+master/slave的證書和私鑰發送到對應的服務器
scp -r /etc/my.cnf.d/ssl/ 192.168.36.121:/etc/my.cnf.d/
scp -r /etc/my.cnf.d/ssl/ 192.168.36.120:/etc/my.cnf.d/
註意:
1、頒發過證書後,證書申請文件已無用處
2、正常情況下,應該復制對應的證書和私鑰,同時要保護好私鑰
B. master節點:
a) 刪除無用的證書和證書申請文件
cd /etc/my.cnf.d/ssl/
\rm -rf master.*
\rm -rf cakey.pem
\rm -rf slave.csr
b) 修改配置文件
[mysqld]
server_id=120
read_only
innodb_file_per_table
skip_name_resolve = on
ssl #有下面3項時,就表示啟動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
datadir=/var/lib/mysql
c) 啟動mariadb服務並查看相關變量
systemctl start mariadb
show variables like ‘%ssl%‘;
d) 創建一個強制使用加密通訊的帳戶
grant replication slave on *.* to [email protected]‘192.168.36.%‘ identified by ‘123456‘ require ssl;
e) 查看並記錄位置信息:mysql -e ‘show master logs’
C. slave節點:
a) 刪除無用的證書和證書申請文件
cd /etc/my.cnf.d/ssl/
\rm -rf slave.*
\rm -rf cakey.pem
\rm -rf master.csr
b) 修改配置文件
[mysqld]
server_id=120
read_only
innodb_file_per_table
skip_name_resolve = on
ssl #有下面3項時,就表示啟動ssl
ssl-ca=/etc/my.cnf.d/ssl/cacert.pem
ssl-cert=/etc/my.cnf.d/ssl/slave.crt
ssl-key=/etc/my.cnf.d/ssl/slave.key
datadir=/var/lib/mysql
c) 啟動mariadb服務並查看相關變量
systemctl start mariadb
show variables like ‘%ssl%‘;
d) 修改change master to
CHANGE MASTER TO
MASTER_HOST=‘192.168.36.121‘,
MASTER_USER=‘repluser2‘, #使用加密通訊的帳戶
MASTER_PASSWORD=‘123456‘,
MASTER_LOG_FILE=‘mariadb-bin.000019‘,
MASTER_LOG_POS=413,
MASTER_SSL=1; #啟動SSL通訊
e) 啟動復制thread
mysql>start slave;
mysql>show slave status\G
f) 測試
master節點導入創建hellodb的sql語句:
slave節點確認:
mariadb實現主從加密通訊的詳細步驟