查看: 11|回覆: 0

mongodb 设置 ssl

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-5-3
發表於 2021-10-12 19:08:00 | 顯示全部樓層 |閲讀模式

# mongodb ssl详细配置

准备:确保openssl可用;

1. #### 生成根证书

```
openssl req -out ca.pem -new -x509 -days 3650 -subj "/C=CN/ST=BeiJing/O=bigdata/CN=root/emailAddress=156*******9@163.com"


#生成需要设置密码
参数说明
-new:表示生成一个新证书签署请求
-x509:专用于CA生成自签证书,如果不是自签证书则不需要此项
-out:证书的保存路径
-days:证书的有效期限,单位是day(天),默认是365天
```

2. #### 生成服务端pem文件

1. 使用rsa加密算法生成一个服务端私钥文件

```
openssl genrsa -out server.key 2048
参数说明
genrsa —— 使用RSA算法产生私钥
out——输出文件的路径
2048——指定私钥长度
```

2. 根据密钥文件生成一个证书申请文件(req)

```
openssl req -key server.key -new -out server.req -subj "/C=CN/ST=BeiJing/O=bigdata/CN=server1/CN=localhost/emailAddress=15617165229@163.com"

参数说明
req——执行证书签发命令
-new——新证书签发请求
-key——指定私钥路径
-out——输出的csr文件的路径
-subj——证书相关的用户信息(subject的缩写)
```

3. 根据证书申请文件生成CA的服务器端证书文件

```
openssl x509 -req -in server.req -CA ca.pem -CAkey privkey.pem -out server.crt -days 3650

参数说明
-CA——指定CA证书的路径
-CAkey——指定CA证书的私钥路径
-CAcreateserial——表示创建证书序列号文件,创建的序列号文件默认名称为-CA,指定的证书名称后加上.srl后缀
#加上 -CAcreateserial file.srl 老报错,所以去掉了
```

4. 合并证书和私钥组成pem文件

```
cat server.key server.crt > server.pem
```

5. 验证服务器端证书,此处可能需要输入密码

```
Openssl verify -CAfile ca.pem server.pem

输出ok即可
```

3. #### 生成客户端pem文件

1. 使用RSA加密算法生成一个客户端私钥文件

```
openssl genrsa -out client.key 2048
```

2. 根据密钥文件生成一个证书申请文件(req)

```
openssl req -key client.key -new -out client.req -subj "/C=CN/ST=BeiJing/O=bigdata/CN=client1/emailAddress=15617165229@163.com"
```

3. 根据证书申请文件生成CA的客户端证书文件:

```
openssl x509 -req -in client.req -CA ca.pem -CAkey privkey.pem -out client.crt -days 3650
```

4. 合并证书及私钥文件成PEM文件

```
cat client.key client.crt > client.pem
```

5. 验证客户端证书

```
openssl verify -CAfile ca.pem client.pem

输出ok即可
```

截止,完成了证书的创建过程

4. #### 配置mongodb的ssl支持

1. 首先需要对mongodb服务器进行设置,这些设置可以在调用mongod启动mongodb服务器时,通过命令行参数进行指定,也可以通过配置文件进行指定,配置文件的默认位置是/usr/local/etc/目录下的mongod.conf。配置内容如下:

```
net:
bindIp: 127.0.0.1
net:
ssl:
mode: requireSSL
PEMKeyFile: /data/mongo_ssl/server.pem
CAFile: /data/mongo_ssl/ca.pem
allowInvalidHostnames: true
```

**注意**
这里PEMKeyFile和CAFile中的文件路径,一定指向我们在上面步骤中生成的文件。
这时我们就可以通过如下命令,启动mongodb:

```
mongod --config /usr/local/etc/mongod.conf
或者
systemctl start mongod
```

2. 设置pem文件所在路径的 mongod 权限

3. 在启动完mongodb数据库后,可以通过如下命令,使用mongo shell连接mongodb数据库:

```
mongo --sslAllowInvalidCertificates --sslAllowInvalidHostnames --ssl --sslPEMKeyFile /data/mongo_ssl/client.pem --sslCAFile /data/mongo_ssl/ca.pem
```

这样我们就可以通过mongo shell连接到本地的mongodb服务器上了,如下图所示:

 

 



来源:https://www.cnblogs.com/wts-home/p/15399204.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部