让mongodump
和mongorestore
使用安全性非常麻烦。
我有mongod
v3.4.1,requireSSL
在192.168.99.100
运行。它是在我的Windows上运行的VirtualBox docker机器的IP地址。它仅用于测试原因。
实例已配置为使用TLS / SSL服务器和客户端使用相同的CA签名。我使用mongod
Common Name的IP地址来允许主机名验证。身份验证已启用以接受我的客户端证书。
所以一切正常。我可以像这样连接到它:
mongo --ssl --host 192.168.99.100 --sslCAFile rootCA.pem --sslPEMKeyFile me.pem
但现在我无法让mongodump
和mongorestore
同时工作:
mongodump --ssl --host 192.168.99.100 --sslCAFile rootCA.pem --sslPEMKeyFile me.pem -d olddb
mongorestore --ssl --host 192.168.99.100 --sslCAFile rootCA.pem --sslPEMKeyFile me.pem -d newdb --dir=dump/olddb
两者都返回此错误:
2017-01-13T04:28:03.881+0800 Failed: error connecting to db server: no reachable servers, openssl error: Host validation error
我一直在尝试关闭客户端证书,使用用户名/密码但仍无效。我需要删除SSL才能使其正常工作。
这意味着我只能在生产中使用preferSSL
。
如果我坚持使用requireSSL
,则无法在localhost中绕过SSL。
有人得到同样的错误吗?这是一个众所周知的问题吗?
答案 0 :(得分:0)
首先检查路径/var/log/mongodb/mongod.log
中的日志还有SSL证书的默认路径。对于基于unix的系统,给出位于/etc/ssl/mongodb.pem的SSL证书
根据我对此问题的理解,我会说需要检查证书路径。 SSL证书不在您的Windows环境中。尝试添加证书的完整路径。 另请查看此https://docs.mongodb.com/manual/tutorial/configure-ssl-clients/
快乐编码
答案 1 :(得分:0)
将此选项添加到命令行:
-sslAllowInvalidHostnames
完整连接示例:
mongo --host 192.168.99.100 --username luke --password skywalker --authentication数据库管理员--ssl --sslCAFile rootCA.pem --sslPEMKeyFile me.pem --sslAllowInvalidHostnames