【发布时间】:2020-04-22 05:30:28
【问题描述】:
鉴于最近发生的 MongoDB 黑客事件。我们也被黑客攻击了。
我们启用了授权并更改了服务器的默认端口。
但是,我们希望借助自签名证书加密与服务器的通信通道。
所以我们的配置如下所示
tls:
mode: requireTLS
allowConnectionsWithoutCertificates: false
certificateKeyFile: /etc/ssl/server.pem
CAFile: /etc/ssl/ca.crt
当我尝试将 mongoshell 与客户端证书连接时,会发生连接不断被拒绝的情况。但在注释 CAFile 配置并使用 --tlsAllowInavlidCertificates 后,连接已创建。
我使用以下链接创建了证书: https://gist.github.com/kevinadi/96090f6f9973ff8c2d019bbe0d9a0f70
要连接到服务器,我使用以下命令:
mongo --host hostname --username user --password password --authenticationDatabase admin --port port --tls --tlsCertificateKeyFile client.pem --tlsCAFile ca.crt
我不知道我做错了什么,这是正确的方法吗?
【问题讨论】:
-
客户端证书和服务器证书需要由同一个根证书颁发机构颁发,因此服务器可以使用其ca.crt验证客户端证书。
-
这就是我在这里所做的事情,我想通过点击该链接。单个根 CA 正在签署这些证书。
-
尝试使用 openssl 验证服务器的 ca.crt 和客户端证书。反之亦然
标签: mongodb ssl client-certificates