mongodb生成自签名证书以及配置SSL以及mongo集群搭建(亲测有效)版本-5.0.6

2023-05-16

@[TOC](mongodb生成自签名证书以及配置SSL(亲测有效) 版本-5.0.6

一直以来都是向大神学习,今天也做回大神分享,哈哈!!几个小时的努力不算白费。

一、自签名证书生成

1、生成根证书ca.pem

1、生成CA私钥(ca.key)(不加密)
openssl genrsa -out ca.key 2048
2、生成CA证书签名请求(ca.csr)
openssl req -new -key ca.key -out ca.csr
在这里插入图片描述
3、生成自签名CA证书(ca.pem), 直接100年有效, 免费白嫖
openssl x509 -req -days 36500 -in ca.csr -signkey ca.key -out ca.pem
到此我们的根证书已经生成完成。

2、生成服务器端PEM文件

1、生成server私钥(server.key)(不加密)
openssl genrsa -out server.key 2048
2、生成server证书签名请求(server.csr)
openssl req -new -key server.key -out server.csr
输入内容和上图保持一致
3、使用ca证书签署服务端csr以生成服务端证书(server.cert)
openssl ca -days 36500 -in server.csr -out server.crt -cert ca.pem -keyfile ca.key
出现以下错误时,touch /etc/pki/CA/index.txt
在这里插入图片描述
出现以下错误时执行:touch /etc/pki/CA/serial echo 01 > /etc/pki/CA/serial
在这里插入图片描述
解决完错误之后再次对证书进行签名如下图:
在这里插入图片描述
4、删掉server.crt中的certificate信息
在这里插入图片描述
5、合并证书和私钥成PEM文件 ,构建命令如下:
cat server.key server.crt > server.pem

3、验证自签名证书是否成功

1、openssl verify -CAfile ca.pem server.pem
在这里插入图片描述

二 、mongodb SSL配置

1、将生成的ca.pem和server.pem放置到mongodb的目录下

在这里插入图片描述

2、mongd.conf ssl 相关配置

在这里插入图片描述

3、重新启动mongo服务

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongod.conf![在这里插入图片描述](https://img-blog.csdnimg.cn/1886b3cd2f844338aab13024f63229ed.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASGFwcHlMZWFybmVyTA==,size_20,color_FFFFFF,t_70,g_se,x_16)

出现以上警告,不想改可忽略,主要是说配置中使用的变量不要用了,mongo高版本不适用这些参数
可进行修改,修改方法如下:
在这里插入图片描述

改完重新启动服务,先杀掉原先服务再启动
在这里插入图片描述
如下图启动服务成功:
在这里插入图片描述

三、通过客户端连接服务器

1、连接命令如下:

./mongo --tls --tlsAllowInvalidCertificates --host 127.0.0.1 --port 28017在这里插入图片描述

2、数据库初始化,设置为主模式

rs.initiate()

在这里插入图片描述
退出mongo服务可以使用 exit 命令

致此,mongo数据库ssl配置成功。

四、mongodb 数据库集群搭建

1、制作cluster证书:如上述制作server证书一样

       最终命名为cluster.pem

2、复制mongo文件两份,分别为mongodb1、mongodb2

在这里插入图片描述

3、按下图分别修改配置文件

/usr/local/mongodb/conf/mongod.conf
/usr/local/mongodb1/conf/mongod.conf
/usr/local/mongodb2/conf/mongod.conf
由于只有一台设备:使用三个端口:28017、28018、28019
在这里插入图片描述

4、启动mongo,mongo1 和mongo2服务

**注意:第三步骤完成之后,需要将mongo服务全部杀掉, 执行
rm -rf /usr/local/mongo/data/*
rm -rf /usr/local/mongo1/data/*
rm -rf /usr/local/mongo2/data/* **
**作用:清除之前数据,为集群起动做准备,不清除数据会导致集群添加失败。**

起动mongo三个服务
在这里插入图片描述
服务启动完成,如下图
在这里插入图片描述

4、将mongodb1和mongodb2加入集群

在这里插入图片描述
执行结果如下图所示:
连接主节点mongodb, 进入/usr/local/mongodb/bin目录, 执行
./mongo --tls --tlsAllowInvalidCertificates --host 127.0.0.1 --port 28017
rs.initiate() ,
rs.add(“”)
在这里插入图片描述

5、查看集群信息

rs.status()  //用于查看集群信息

在这里插入图片描述

五、配置mongo数据库授权用户

参看如下链接:
mongoDB创建用户名密码登录和其他一些设置

mongodb用户权限管理最全攻略:用户的创建、查看、删除与修改,mongodb入坑之旅

六,验证复制集

1、主节点写入,从节点读

使用db.test.find() 从节点读数据时会报错如下:
在这里插入图片描述
**解决办法:**执行 rs.slaveOk() (高版本被丢弃),或者执行 rs.secondaryOk(), 意思是允许从节点读

2、主节点写入数据

db.test.insert({“a”:“2”})
主节点写入数据成功
在这里插入图片描述
db.test.find()
从节点读取数据成功
在这里插入图片描述

将命令行转换成配置文件命令

例子: ./mongod --tlsCRLFile TT --outputConfig

在这里插入图片描述

Mongodb 参考手册

mongodb英文参考手册

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mongodb生成自签名证书以及配置SSL以及mongo集群搭建(亲测有效)版本-5.0.6 的相关文章

  • [网络]IPV6

    IPV6优势 xff1a 更大地址空间 xff08 2 128 xff09 端到端的全球可达性层次化编址利于聚合 xff08 每个运营商一个地址块 xff09 组播的使用 xff08 Server传播一份流量 xff0c 通过组播扩散到用户
  • Proxmox VE(PVE)+ceph+物理网络规划-超融合生产环境安装部署案例

    1 Proxmox Virtual Environment介绍 Proxmox VE 是用于企业虚拟化的开源服务器管理平台 它在单个平台上紧密集成了KVM虚拟机管理程序和LXC xff0c 软件定义的存储以及网络功能 借助基于Web的集成用
  • [XPlane11/12]同步更新Zibo737插件下载-更新至3.54.17-插件搬运

    Boeing B737 800X mod 链接中包括XPlane11和XPlane12版 XPlane11版本已更新至3 54 17 xff1b XPlane12版本已更新至2 1 一 下载链接 xff1a 捐助ZIBOmod xff1a
  • Proxmox VE(PVE)备份组件:PBS(Proxmox Backup Server)部署及使用教程

    1 Proxmox Backup Server xff08 pbs xff09 介绍 Proxmox Backup Server xff08 pbs xff09 是与pve配套的备份解决方案 xff0c 用于备份和恢复虚拟机 容器和物理主机
  • maven mirror

    lt mirror gt lt id gt UK lt id gt lt name gt UK Central lt name gt lt url gt http uk maven org maven2 lt url gt lt mirro
  • 1002 A+B for Polynomials (25分)

    题目大意 输入两行 xff0c 每行格式如上 xff0c K为多项式中非零项的个数 xff0c N为指数 xff0c aN为该项的系数 最后输出两个多项式的和 思路 xff1a 用一个结构体数组 ploy xff0c 数组中的每个元素存储该
  • linux/unix 使用airport

    把airport引入到用户命令里 xff0c 建立一个软连接 span class hljs built in sudo span ln span class hljs operator s span System Library Priv
  • 网页中提取SWF游戏文件及运行修改

    1 下载游戏到本地 以4399游戏为例 首先需要找到游戏页面如下 xff1a
  • k8s快速部署,附带脚本

    内容导航 xff08 一 xff09 资产信息 xff08 二 xff09 脚本内容 xff08 三 xff09 网络插件flannel1 xff0c 使用flannel网络插件2 xff0c 修改网络模式为ipvs xff0c svc无法
  • pandas处理大文件

    目录 思路一 xff1a 分而治之 思路二 xff1a 精简数据 demo 思路一 xff1a 分而治之 分而治之 xff0c 分批次加载大文件 xff0c 每次读取一定行数的数据 xff0c 读一批处理一批 此方法简单有效 xff0c 易
  • C++详解:枚举类型 --- enum | Xunlan_blog

    文章目录 一 概念二 定义枚举元素表 三 定义枚举对象的操作 四 要点 amp 技巧实例 一 概念 枚举类型 enumeration xff0c 是C 43 43 中的一种派生数据类型 xff0c 是用户创建的一个集合 xff0c 可以增加
  • 使用vue3+axios和后端交互时无法改变的data中的数据

    今天在编写前端页面的时候 xff0c 打算引入axios进行ajax请求 xff0c 可以在这个过程中遇到了一个非常大的坑 xff0c 先来看看有坑的代码 我们看一下浏览器端的console的打印情况 可以看到 xff0c 第二次打印thi
  • Ubuntu20.04搜狗输入法官方安装指南实操

    前言 linux下也想用已经熟悉的搜狗输入法 xff0c 于是乎 xff0c 在网上查各种教程 xff0c 发现很多都不能成功 xff0c 在要放弃的时候 xff0c 下面这个链接帮助自己完成了这个任务 xff1a 官方教程 xff1a U
  • 国王游戏——c++实现

    题目描述 恰逢 H 国国庆 国王邀请 n 位大臣来玩一个有奖游戏 首先 他让每个大臣在左 右手上面分别写下一个整数 xff0c 国王自己也在左 右手上各写一个整数 然后 xff0c 让这 n 位大臣排成一排 xff0c 国王站在队伍的最前面
  • 正确打开db文件的方式,避免乱码和无意义内容

    db文件如果用记事本或者Notepad 43 43 打开 xff0c 会显示乱码 xff0c 改变编码不能解决问题 xff0c 如果用UltraEdit打开 xff0c 可以看到进制数据 xff0c 但是无意义的 正确的方法有多种 xff1
  • 深度优先搜索——枚举组合

    所谓枚举组合 xff0c 其实就是从若干个选若干个数 比如x 1 x 2 x 3 x 4 x n 每个数字时0 xff08 不选 xff09 和1 xff08 选 xff09 x表示当前选到第几个书 xff0c dep表示选了几个数 对于每
  • 更新个祥硕ASM1153E开卡转接板的固件,详细教程

    固态硬盘开卡需要使用USB转接板 连接电脑 xff0c 使用那些未经验证的普通硬盘盒开卡 xff0c 经常会碰到一些千奇百怪的错误而导致开卡失败 xff0c 专用开卡板可以让你少走很多弯路 注意 xff1a 目前sata转usb的桥接芯片
  • Android获取OAID

    目录 写在最前面 写在前面 说明文档 SDK使用过程 xff1a 代码实现 写在最前面 看评论有好些朋友遇到了一些我没遇到的问题 xff0c 而且看官方文档也已经更新 xff0c 想着这些问题官方是不是已经优化解决了 xff0c 就按着最新
  • Java基础——隐式转换vs强制转换

    在定义变量时 xff0c 有许多要注意的问题 xff0c 一不小心就会出现损失精度或者不兼容类型等问题 例如 xff1a 1 定义长整型数据时 xff0c 必须加后缀 l 或 L long l 61 123456789012345L 2 定
  • 【Open CASCADE -生成MFC和QT事例方式】

    源代码目录 adm目录 xff1a 包含编译OCCT的相关工程 adm cmake目录 xff1a 包含使用CMake构建OCCT的相关处理脚本 adm msvc目录 xff1a 包含window平台 Visual C 43 43 2010

随机推荐