千家信息网

实现SSL加密的主从复制

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,实验环境centos7.6最小化安装关闭防火墙、selinux一、建立CA并生成证书1、生成CA的私钥mkdir /etc/my.cnf.d/sslcd /etc/my.cnf.d/sslopenss
千家信息网最后更新 2024年11月26日实现SSL加密的主从复制

实验环境

centos7.6最小化安装

关闭防火墙、selinux

一、建立CA并生成证书

1、生成CA的私钥

mkdir /etc/my.cnf.d/ssl

cd /etc/my.cnf.d/ssl

openssl genrsa 2048 > cakey.pem

2、CA自签名证书

openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650

3、生成主节点私钥和证书申请文件

openssl req -newkey rsa:1024 -days 365 -nodes -keyout master.key > master.csr

生成证书

openssl x509 -req -in master.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 > master.crt

4、生成从节点私钥和证书申请文件

openssl req -newkey rsa:1024 -days 365 -nodes -keyout slave.key > slave.csr

生成证书

openssl x509 -req -in slave.csr -CA cacert.pem -CAkey cakey.pem -set_serial 02 > slave.crt

[root@localhost ssl]#scp -r /etc/my.cnf.d/ssl/ 192.168.12.27:/etc/my.cnf.d/ #将证书复制到从服务器

二、配置SSL主从

MariaDB [(none)]> status #查看客户端登录时是否使用ssl

MariaDB [(none)]> show variables like '%ssl%'; #查看是否启用加密

1、配置主服务器

vi /etc/my.cnf #修改配置文件

[mysqld]datadir=/var/lib/mysqllog-binserver-id=57                                                                         ssl-ca=/etc/my.cnf.d/ssl/cacert.pemssl-cert=/etc/my.cnf.d/ssl/master.crtssl-key=/etc/my.cnf.d/ssl/master.key

systemctl restart mariadb

MariaDB [(none)]> show variables like '%ssl%'; #可以看到加密功能启用

mysql --ssl-ca=cacert.pem --ssl-cert=master.crt --ssl-key=master.key   #客户端连接加密,证书如果不在当前路径需要,如果证书有问题会报错的

创建只允许ssl登录账号

MariaDB [(none)]> grant replication slave on *.* to repluser@'192.168.12.%' identified by '123456' require ssl;

[root@localhost ssl]#mysqldump -A -F --single-transaction --master-data=1 >all.sql #备份数据库

[root@localhost ssl]#scp all.sql 192.168.12.27:/

2、配置从服务器

vi /etc/my.cnf #修改配置文件

[mysqld]datadir=/var/lib/mysqlserver-id=27read-onlyssl-ca=/etc/my.cnf.d/ssl/cacert.pemssl-cert=/etc/my.cnf.d/ssl/slave.crt                                                           ssl-key=/etc/my.cnf.d/ssl/slave.key

测试是否可以用ssl连接主服务器

mysql -urepluser -p123456 -h292.168.12.57 --ssl-ca=cacert.pem --ssl-cert=slave.crt --ssl-key=slave.key

vi /all.sql #在原有的基础上修改

CHANGE MASTER TOMASTER_HOST='192.168.12.57',MASTER_USER='repluser',MASTER_PASSWORD='123456',MASTER_SSL=1,                                                                                  MASTER_LOG_FILE='mariadb-bin.000009', MASTER_LOG_POS=245;

[root@localhost ssl]#mysql < /all.sql

MariaDB [(none)]> start slave;

MariaDB [(none)]> show slave status\G #在配置文件中配置的话此处不显示证书路径

如果是在CHANGE MASTER TO中指定证书路径 show slave status\G 是可以看到证书路径的,其他没有区别

MariaDB [(none)]> show slave status\G

证书 配置 生成 文件 服务器 路径 服务 加密 客户 客户端 节点 登录 主从 最小 中指 功能 基础 备份 数据 数据库 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 临沂顺商网络技术 对网络安全说不 手抄 苹果手机为什么老是连不上服务器 gta5怎么查询数据库 传统网络安全漏洞有哪些 数据库开发出国培训机构 网络安全论坛到此结束 软件开发技术选型什么意思 网络技术和互联网是一回事吗 数据库 表复制语句 非归档模式的数据库有何优势 数据库查询每天的数据java 新川科技园互联网单一 网络安全检测功能 服务器遇到未知异常请稍后重试 上海锦振互联网科技有限公司 如何开发下载数据库 魔兽 不在一个服务器 mail服务器设置 数据库技术路线怎么写 山西水性软件开发怎么样 it服务器结构设计工程师 山西数据库安全箱生产厂家 山西网络时钟同步服务器虚拟主机 数据库触发器应用场景 学计算机网络技术专业前景怎样 互联网科技指数 河北智慧养老软件开发公司 app软件开发解决方案企业 redhat 服务器远程下载
0