我正在尝试使用 ssl 设置 mongodb,但在通过 mongodb 指南针连接时遇到问题。
运行 mongodb 为:
蒙神
工作正常,我可以通过指南针和命令行轻松连接到它。
但是,当使用 ssl 运行服务器时,如下所示:(稍后我将为此设置一个配置文件)
mongod --sslMode requireSSL --sslPEMKeyFile mongo.pem --sslCAFile rootCA.crt --bind_ip 127.0.0.1
我在通过指南针连接时遇到问题。我给 compass 一个自制的 CA 证书(与服务器使用的相同)、一个密钥和一个由密钥生成的 CA 证书签名的证书。结果是罗盘上出现以下错误:
无法在提供的主机和端口上连接到 MongoDB
并且在 mongod 服务器上记录了以下内容:
2019-05-25T13:34:24.730-0400 I NETWORK [listener] 连接从 127.0.0.1:52246 #3 接受(现在打开 1 个连接)
2019-05-25T13:34:24.793-0400 I NETWORK [conn3] 结束连接127.0.0.1:52246(现在打开 0 个连接)
2019-05-25T13:34:24.795-0400 I NETWORK [listener] 从 127.0.0.1:52247 #4 接受连接(现在打开 1 个连接)
2019-05-25T13:34 :24.832-0400 I NETWORK [conn4] end connection 127.0.0.1:52247 (0 个连接现在打开)
如您所见,没有 ssl 错误,也没有任何与此相关的错误。Compass 连接后立即断开连接,然后再尝试一次,然后放弃。
另一方面,使用与 compass 相同的证书在命令行上连接到所需的 ssl 服务器可以正常工作:
mongo --ssl --host 127.0.0.1 --sslPEMKeyFile compass/compass.pem --sslCAFile rootCA.crt
唯一的区别是 compass.pem 是从以下位置生成的:
cat compass.crt compass.key > compass.pem
而不是直接将 crt 和 key 文件提供给 compass。