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

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节点确认:

原文地址:https://blog.51cto.com/13560168/2392406

时间: 2024-10-10 07:06:09

mariadb实现主从加密通讯的详细步骤的相关文章

iOS开发融云即时通讯集成详细步骤

1.融云即时通讯iOS SDK下载地址   http://rongcloud.cn/downloads  选择iOS   SDK下载 2.进行应用开发之前,需要先在融云开发者平台创建应用,如果您已经注册了融云开发者帐号,请前往 融云开发者平台 创建应用:如果您还没有注册融云开发者帐号,请前往 融云官方网站 首先注册开发者帐号,注册后创建应用.注册地址  https://developer.rongcloud.cn/signup 3.登陆融云开发者平台 https://developer.rong

ssdb 主从同步复制配置详细步骤

SSDB 的配置文件是一种层级 key-value 的静态配置文件, 通过一个 TAB 缩进来表示层级关系. 以 '#' 号开始的行是注释.  ssdb的使用遵循redis协议,读写性能都特别快. 有时我们在使用数据库时,像mongodb,redis和一些关系行数据,为了使数据更加安全,作为备份使用我们经常习惯使用主从复制架构,当主机上的数据出现问题时,我们就可以连接到slave机器 也就是另外一台机器会从主机上进行同步数据,如果我们使用linux命令 netstat -apn,会发现slave

MHA实现mariadb的高可用的详细步骤及配置参数详解

MHA实现mariadb的高可用的详细步骤及配置参数详解 A. 实验环境说明 a) 4台centos7主机 b) 角色说明: a. MHA:192.168.36.35 b. Master_mariadb:192.168.36.121 c. Slave_mariadb:192.168.36.120 d. Slave_mariadb:192.168.36.27 B. 安装程序包 a) mariadb上安装: mariadb-server 版本:5.5.60 mha4mysql-node -0.56-

MariaDB-Galera-cluster实现mariadb高可用的详细步骤

MariaDB的Galera-cluster实现高可用的详细步骤 ? A. 实验环境说明 ? a) 至少3台centos7主机 ? b) 角色: a. master1:192.168.36.121 b. master2:192.168.36.120 c. master3:192.168.36.27 ? B. 配置yum源 vim /etc/yum.repos.d/galera.repo [mysql] baseurl=https://mirrors.tuna.tsinghua.edu.cn/ma

TortoiseSVN使用详细步骤

1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么要用SVN? 4 怎么样在Windows下面建立SVN Repository? 5 建立一个Working目录 6 新增档案及目录到Repository中 7 更新档案及目录 8 更新至特定版本 9 复制档案及目录 10 制作Tag或是Release 11 快速参考 11.1 取得(Checkout)Repository 11.2 更新(Update)档案或目录 11.3 新增(Add)档案或目录 11.4 提

马哥2016全新Linux+Python高端运维班-Linux服务 DNS,httpd,加密通讯,vsftp,NFS,samba服务练习

本周作业内容: 1.详细描述一次加密通讯的过程,结合图示最佳. 一次加密通讯的过程: 首先Bob用单向加密的方法提取数据的特征码,用自己的私钥加密这段特征码,并附加到数据的后面. Bob用对称加密算法把数据及特征码整个进行加密. Bob用接收方的公钥加密对称密钥并附加到数据后面. Alice用私钥解密对称密钥. Alice用对称密钥解密出数据及加密的特征码. Alice用发送方的公钥解密特征码,并用相同的算法算出数据的特征码,比较两个特征码是否一致,若一致即可获得Bob的数据. 如图所示: 单向

linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改

原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开源的实现加解密和证书的专业系统.在centos下可以利用yum安装. 2.openssl的配置文件是openssl.cnf,我们一般就是用默认配置就可以.如果证书有特殊要求的话,可以修改配置适应需求.这样必须把相关的文件放到配置文件指定的目录下面. 3.首先需要利用openssl生成根证书,以后的服

如何发布一个自定义Node.js模块到NPM(详细步骤)

咱们闲话不多说,直接开始! 由于我从没有使用过MAC,所以我不保证本文中介绍的操作与MAC一致. 文章开始我先假定各位已经在window全局安装了Node.js,下面开始进行详细步骤介绍: 本文本着,以极少的文字说明以及极少的代码书写为原则来给大家演示! 文章中上传的模块不具备任何意义! 一.封装node.js模块时的必须项 1.创建package.json 每一个完整封装的node模块,必须含有一个参数明确的package.json文件! 以下为package.json的最精简配置: { "n

redis3.0.2 分布式集群安装详细步骤

redis3.0.2 分布式集群安装详细步骤 --(centos5.8 X64系统) 版本历史 时间 版本 说明 编写者 2015-06-5 1.0 redis3.0.2 分布式集群安装详细步骤 csc 一: redis cluster介绍篇 1:redis cluster的现状 目前redis支持的cluster特性(已亲测): 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot resharding:在线分片 4):进群管理:cluster xxx 5):基于