Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Mongo URI问题-SSL对等证书验证失败:自签名证书_Mongodb_Uri - Fatal编程技术网

Mongodb Mongo URI问题-SSL对等证书验证失败:自签名证书

Mongodb Mongo URI问题-SSL对等证书验证失败:自签名证书,mongodb,uri,Mongodb,Uri,我使用的是mongo 3.4.4,我可以使用mongo客户端命令行参数成功地连接/查询,但在使用mongo URI时不能 这项工作: mongo --host myfullyqualifiedhostname --port 27018 -u myuser -p mypassword --ssl --sslCAFile /etc/ssl/mongodb-prod.pem --authenticationDatabase admin MongoDB shell version v3.4.4 conn

我使用的是mongo 3.4.4,我可以使用mongo客户端命令行参数成功地连接/查询,但在使用mongo URI时不能

这项工作:

mongo --host myfullyqualifiedhostname --port 27018 -u myuser -p mypassword --ssl --sslCAFile /etc/ssl/mongodb-prod.pem --authenticationDatabase admin
MongoDB shell version v3.4.4
connecting to: mongodb://myfullyqualifiedhostname:27018/
MongoDB server version: 3.4.4
rs1:PRIMARY>
这不起作用:

mongo "mongodb://myuser:mypassword@myfullyqualifiedhostname:27018/admin?ssl=true&sslCAFile=/etc/ssl/mongodb-prod.pem"
MongoDB shell version v3.4.4
connecting to: mongodb://myuser:mypassword@myfullyqualifiedhostname:27018/admin?ssl=true&sslCAFile=/etc/ssl/mongodb-prod.pem
2019-12-03T18:25:43.392+0000 E NETWORK  [thread1] SSL peer certificate validation failed: self signed certificate
2019-12-03T18:25:43.398+0000 E QUERY    [thread1] Error: socket exception [CONNECT_ERROR] for SSL peer certificate validation failed: self signed certificate :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
URI中是否缺少任何东西,以便获得与命令行选项相同的选项

我还尝试了sslAllowInvalidCertificates=true&sslAllowInvalidHostnames=true的URI,但没有成功

这篇文章提到有人在使用Mongo URI时尝试并得出结论认为自签名证书不起作用。有人得到了不同的结果吗?

谢谢


Bernardo

查看MongoDB文档时,它提到了TLS设置,这些设置是SSL的替代品,因此这些信息充其量也很弱。文档中说tlsCAFile有一个参数,但它是4.2的新参数,您使用的是3.4.4。此外,它还表示mongo shell不提供此选项。从某种意义上讲,这可能会揭示您的问题-MongoDB似乎从未在mongo shell URI连接字符串中实现任何选项来指定CA文件,即使是最新版本也是如此。查看MongoDB文档中的TLS设置,它们是SSL的替代品,因此此信息充其量也很弱。文档中说tlsCAFile有一个参数,但它是4.2的新参数,您使用的是3.4.4。此外,它还表示mongo shell不提供此选项。从某种意义上讲,这可能会揭示您的问题-MongoDB似乎从未在mongo shell URI连接字符串中实现任何选项来指定CA文件,即使是最新版本。