基于SSL安全连接的的主从复制

由于mysql的主从复制是明文传送的,但如果在生产环境中跨网络我们使用的主从复制还是明文传送的话,就保证不了数据的安全性,为了解决这一问题,我们需要加密进行传送,也就是基于SSL的加密方法进行传输数据。

实验环境:

首先准备两台mysql5.7数据库,一台为主master,一台为从slave服务器(安装mysql5.7的三种方法,上次已经说了。也可以到L宝宝聊IT公众号或博客园中找“CentOS7.2安装Mysql5.7.13”文档)

实验步骤:

1、在主 mysql 创建SSL/RSA 文件

# cd /usr/local/mysql/bin ——切换目录

#mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql

--datadir=/usr/local/mysql/data ——创建新的 SSL 文件

重启mysqld 服务

#systemctl restart mysqld

发现mysql启动失败,查看错误日志

报错信息显示是不能获得私钥,执行 ls 查看 server-key.pem

发现没有 r 权限,添加 r 权限

重启mysql 服务,这时错误日志中就没有报错了

登录mysql,执行

mysql> show variables like '%ssl%';

从上图可以看到 mysql 支持了 ssl 安全连接

注:启用mysql 支持 ssl 安全连接主要用于 mysql 主从复制(局域网可以非 ssh 连接即明文复制,但 internet 复制建议采用 ssl 连接)

在主mysql 上的操作完成,再生成一个复制帐号:REQUIRE SSL

在主mysql 上启用二进制日志并重启 mysql 服务

添加下面的配置项

重启服务

#systemctl restart mysqld

查看主mysql 的状态

注:要记住上图所显示的 file 和 position 的值,配置从服务器要用到。

防火墙允许 3306/tcp 通信或直接关闭(systemctl stop firewalld.service)

2、从服务器的配置

(1)修改从 mysql 的/etc/my.cnf 文件内容,如下图:

注:server_id要唯一,不能和其他 mysql 主机的重复

(2)返回主mysql(master),把主mysql 生成的证书给了从服务器

注:192.168.1.106是从 mysql 的 IP 地址

(3)查看从 mysql 复制过来的证书

设置client-key.pem 的 r 权限

(4)继续在从上配置 SSL:修改/etc/my.cnf 文件,添加如下内容

重启mysqld 服务

查看mysqld.err 是否有错误日志

(5)查看 SSL 是否被支持:

(6)在配置主从复制之前可以在从 mysql 上用 SSL 连接主服务器试试:

注:192.168.1.108是主 mysql 的 ip 地址

SSL 测试连接成功,并且登入的 SSL 协议是: Cipher in use is DHE-RSA-AES256-SHA

(7)最后开始配置主从 replicate, 登录从 mysql

在从上change master to

启用从

查看从的状态,以下两个值必须为 yes,代表从服务器能正常连接主服务器

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

3、测试:

在主mysql 上:

从服务器上:

测试同步成功,以上基于ssl安全连接的主从复制搭建完成。

SSL(SecureSockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。复制默认是明文进行传输的,通过SSL 加密可以大大提高数据的安全性。

原文发布于微信公众号 - L宝宝聊IT(gh_b0e552aa80db)

原文发表时间:2018-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在FreeBSD上使用SSL来保护Nginx

腾讯云SSL是腾讯云的证书颁发服务,SSL证书(SSL Certificates)提供了安全套接层(SSL)证书的一站式服务,包括证书申请、管理及部署功能,与顶...

14410
来自专栏虚拟化云计算

qemu-libvirt-磁盘加密

# qemu-img convert -f qcow2 -O qcow2 -o encryption template.img encry.qcow2

55280
来自专栏Laoqi's Linux运维专列

设置grub密码

15430
来自专栏农夫安全

【补充】任意密码重置姿势

跟第三个有点类似,只判断了接收端和验证码是否一致,未判断接收端是否和用户匹配,因此修改接收端可达到重置目的

12820
来自专栏Java学习123

windows环境下 curl 安装和使用

42260
来自专栏主机笔记

腾讯云解封25端口

在使用腾讯云的服务器的时候,有时候需要发送邮件,但是默认是不开放25端口的,需要去官网控制台手动解除,这里记录下方法。 首先在控制台右上角找到自己的名字,鼠标悬...

5.7K140
来自专栏小白安全

小白博客 CryKeX:Linux内存加密密钥提取工具

CryKeX特性 1. 跨平台 2. 简单实用 3. 交互性强 4. 兼容性/可移植性强 5. 应...

48280
来自专栏Ken的杂谈

Nginx配置SSL证书将网站从HTTP升级到HTTPS

HTTPS全称是:超文本安全传输协议,可以简单理解为使用SSL加密传输的HTTP协议,HTTP的默认端口是80,HTTPS的默认端口是443。SSL是为网络通信...

82240
来自专栏云计算与大数据

研发:http协议,什么是混合内容

混合内容在以下情况下出现:初始 HTML 内容通过安全的 HTTPS 连接加载,但其他资源(例如,图像、视频、样式表、脚本)则通过不安全的 HTTP 连接加载。...

13130
来自专栏虚拟化云计算

虚拟机磁盘加密之LUKS

LUKS是一种基于device mapper机制的加密方式。使用加密磁盘前要先mapper映射,映射时需要输入密码,写入和读取磁盘时不需要再输入密码。LUKS可...

19020

扫码关注云+社区

领取腾讯云代金券