mongodb生成自签名证书以及配置SSL以及mongo集群搭建(亲测有效)版本-5.0.6
mongodb生成自签名证书以及配置SSL(亲测有效一、自签名证书生成1、生成根证书ca.pem2、生成服务器端PEM文件3、验证自签名证书是否成功二 、mongodb SSL配置1、将生成的ca.pem和server.pem放置到mongodb的目录下2、mongd.conf ssl 相关配置3、重新启动mongo服务三、通过客户端连接服务器1、连接命令如下:2、数据库初始化,设置为主模式四、m
@[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 参考手册
更多推荐
所有评论(0)