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