@[TOC](mongodb生成自签名证书以及配置SSL(亲测有效) 版本-5.0.6
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
到此我们的根证书已经生成完成。
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
1、openssl verify -CAfile ca.pem server.pem
/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高版本不适用这些参数
可进行修改,修改方法如下:
改完重新启动服务,先杀掉原先服务再启动
如下图启动服务成功:
./mongo --tls --tlsAllowInvalidCertificates --host 127.0.0.1 --port 28017
rs.initiate()
致此,mongo数据库ssl配置成功。
最终命名为cluster.pem
/usr/local/mongodb/conf/mongod.conf
/usr/local/mongodb1/conf/mongod.conf
/usr/local/mongodb2/conf/mongod.conf
由于只有一台设备:使用三个端口:28017、28018、28019
**注意:第三步骤完成之后,需要将mongo服务全部杀掉, 执行
rm -rf /usr/local/mongo/data/*
rm -rf /usr/local/mongo1/data/*
rm -rf /usr/local/mongo2/data/* **
**作用:清除之前数据,为集群起动做准备,不清除数据会导致集群添加失败。**
执行结果如下图所示:
连接主节点mongodb, 进入/usr/local/mongodb/bin目录, 执行
./mongo --tls --tlsAllowInvalidCertificates --host 127.0.0.1 --port 28017
rs.initiate() ,
rs.add(“”)
rs.status() //用于查看集群信息
参看如下链接:
mongoDB创建用户名密码登录和其他一些设置
mongodb用户权限管理最全攻略:用户的创建、查看、删除与修改,mongodb入坑之旅
使用db.test.find() 从节点读数据时会报错如下:
**解决办法:**执行 rs.slaveOk() (高版本被丢弃),或者执行 rs.secondaryOk(), 意思是允许从节点读
db.test.insert({“a”:“2”})
主节点写入数据成功
db.test.find()
从节点读取数据成功
例子: ./mongod --tlsCRLFile TT --outputConfig
mongodb英文参考手册