获取 mongodump
和 mongorestore
的安全性相当麻烦。
我有 mongod
v3.4.1 和 requireSSL
在 192.168.99.100
运行。它是在我的 Windows 上运行的 VirtualBox docker 机器的 IP 地址。这只是为了测试原因。
实例已配置为使用使用相同 CA 签名的服务器和客户端的 TLS/SSL。我使用 mongod
公用名的 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。
有人遇到同样的错误吗?这是一个已知问题吗?
最佳答案
将此选项添加到命令行:
--sslAllowInvalidHostnames
全连接示例:
mongo --host 192.168.99.100 --username luke --password skywalker --authenticationDatabase admin --ssl --sslCAFile rootCA.pem --sslPEMKeyFile me.pem --sslAllowInvalidHostnames
关于mongodb - 使用 SSL 的 mongodump 和 mongorestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41623530/