基於SSL加密的MySQL主從複製

來源:互聯網
上載者:User

在MySQL的主從複製中,其傳輸過程是明文傳輸,並不能保證資料的安全性,在編譯安裝Mysql時,基本上都會加上一個 --with-openssl這樣的選項,即表示支openssl加密傳輸協議,因此就可以為mysql配置基於ssl加密傳輸啦。

規劃:
Master:
IP地址:172.16.4.111
MySQL版本:5.5.20
作業系統:RHEL5.4

Slave:
IP地址:172.16.4.112
MySQL版本:5.5.20
作業系統:RHEL5.4

由於使用了ssl加密傳輸協議,即意味著,在傳輸之前,主從伺服器是要進行互相認證的,因此要為兩台伺服器準備各自的認證,私密金鑰,以及為其頒發認證的CA的認證,明晰了這些,就先為兩台伺服器準備私密金鑰,認證。這裡需要將Master配置為一台CA伺服器,方便為主從伺服器頒發認證。ps:將伺服器配置為CA伺服器,詳見:Openssl的用法(搭建CA伺服器) 

http://www.bkjia.com/Linux/2012-05/60213htm

一、設定主從服務
在172.16.4.111伺服器上
編輯/etc/my.cnf
#vim /etc/my.cnf
將serier_id修改為11
server_id=11                #修改server_id=11
log_bin=mysql-bin            #開啟二進位日誌
sync_binlog=1                #任何一個事務提交之後就立即寫入到磁碟中的二進位檔案
innodb_flush_logs_at_trx_commit=1       #任何一個事物提交之後就立即寫入到磁碟中的記錄檔
儲存退出
啟動mysql
#service mysqld start

在172.16.4.112伺服器上
編輯/etc/my.cnf
#vim /etc/my.cnf
server_id=12                #修改server_id=12
#log-bin                #注釋掉log-bin,從伺服器不需要二進位日誌,因此將其關閉
relay-log=mysql-relay                #定義中繼日誌名,開啟從伺服器中繼日誌
relay-log-index=mysql-relay.index     #定義中繼日誌索引名,開啟從伺服器中繼索引
read_only=1                    #設定從伺服器只能進行讀操作,不能進行寫操作
儲存退出
啟動mysql
#service mysqld start


二、準備認證,私密金鑰
1、配置Master為CA伺服器
#vim /etc/pki/tls/openssl.cnf
將  dir             = ../../CA修改為
dir             = /etc/pki/CA
#(umask 077;openssl genrsa 2048 > private/cakey.pem)
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
#mkdir certs crl newcerts
#touch index.txt
#echo 01 > serial

2、為Master上的Mysql準備私密金鑰以及頒發認證
#mkdir /usr/local/mysql/ssl
#cd ssl/
#(umask 077;openssl genrsa 1024 > mysql.key)
#openssl req -new -key mysql.key -out mysql.csr
#openssl ca -in mysql.csr -out mysql.crt
#cp /etc/pki/CA/cacert.pem /usr/local/mysql/ssl/
#chown -R mysql.mysql ssl/

3、為Slave上的Mysql準備私密金鑰以及申請認證
#mkdir /usr/local/mysql/ssl
#cd ssl/
#(umask 077;openssl genrsa 1024 > mysql.key)
#openssl req -new -key mysql.key -out mysql.csr
#scp ./mysql.csr 172.16.4.111:/root

4、在Master上為Slave簽發認證
#cd
#openssl ca -in mysql.csr -out mysql.crt
#scp ./mysql.crt 172.16.4.112:/usr/local/mysql/ssl
#cd /etc/pki/CA
#scp ./cacert.pem 172.16.4.112:/usr/local/mysql/ssl

到此認證以及私密金鑰已經準備好,請確認在Master以及Slave的/usr/local/mysql/ssl目錄下具有以下檔案,以及屬主和屬組:

 

650) this.width=650;" border=0>

650) this.width=650;" border=0>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.