mariadb實現主從加密通訊的詳細步驟

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%';

mariadb實現主從加密通訊的詳細步驟
 

d) 創建一個強制使用加密通訊的帳戶

    grant replication slave on *.* to repluser2@'192.168.36.%' identified by '123456' require ssl;

 

e) 查看並記錄位置信息:mysql -e ‘show master logs’

mariadb實現主從加密通訊的詳細步驟

 

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%';

mariadb實現主從加密通訊的詳細步驟
 

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語句:

mariadb實現主從加密通訊的詳細步驟
mariadb實現主從加密通訊的詳細步驟

    slave節點確認:

mariadb實現主從加密通訊的詳細步驟

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章