mongodb - 使用 SSL 的 mongodump 和 mongorestore

标签 mongodb ssl mongodump

获取 mongodumpmongorestore 的安全性相当麻烦。

我有 mongod v3.4.1 和 requireSSL192.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

但现在我无法同时使 mongodumpmongorestore 工作:

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/

相关文章:

node.js - 我可以使用 MongoDB 模式模型来定义 IndexedDB 索引吗?

apache - 422 不可处理的实体,JS 文件,gitlab 8.17,apache ssl

PHP 连接到 Postgresql 错误

mongodb - 将旧版本 mongo 的数据库转储恢复到新版本 mongo

mongodb - 如何将 MongoDB 存档文件转换为 JSON 格式?

mongodb - 显式连接到 Mongo 副本集有什么好处?

node.js - docker-compose wait-for.sh无法等待mongodb

javascript - 外部函数调用、promise、async 和 Mongo - 困惑

java - 如何在 Java 中启用客户端 TLS session 重用

mongodb - 如何恢复压缩的 Mongodb 单个集合?