mongodb - 找不到合适的服务器 (`serverSelectionTryOnce` set) : [TLS handshake failed: error:14090086:SSL routines:ssl3_get_server_certificate

标签 mongodb ssl-certificate

我正在尝试将 mongodb 连接到 php 应用程序,从 compose 到本地,但出现此错误。 但我可以远程使用 mongo chef

找不到合适的服务器(serverSelectionTryOnce 设置):[TLS 握手失败:错误:14090086:SSL 例程:ssl3_get_server_certificate:证书验证调用 ismaster 失败

最佳答案

我认为你有 3 个选项来解决这个问题。

1。在您的服务器上禁用 SSL

找到mongod.conf,如果你使用的是linux,那么通常它应该位于/etc/mongod.conf,使用#net 下注释这些行。最后,您需要重新启动 mongodb 以使更改生效。

网: SSL: 模式:要求SSL PEMKey文件:./mongodb.pem ...

2。在您的客户端上使用名为 weak_cert_validation 的选项

这不是安全解决方案,但绝对是最简单的解决方案之一

例如,如果 mongoDB 服务器启用了 SSL 但没有(或没有)提供 CA 证书(即自签名证书),则将 weak_cert_validation 设置为 true 在客户端,以 C 客户端为例:

mongoc_ssl_opt_t ssl_opts = {0};
ssl_opts.weak_cert_validation = true;
mongoc_client_set_ssl_opts(client, &ssl_opts);

3。关注configure-ssl创建证书并为您的程序签名。

这里有一些提供者:https://en.wikipedia.org/wiki/Certificate_authority#Providers

关于mongodb - 找不到合适的服务器 (`serverSelectionTryOnce` set) : [TLS handshake failed: error:14090086:SSL routines:ssl3_get_server_certificate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44148083/

相关文章:

linux - MongoDB 启动时出现错误 : mongod dead but subsys locked

javascript - 指的是一个值,但在这里被用作类型

php - 为 LDAPS 连接验证自签名证书

openssl - 将表示为 HEX 字符串的 X.509 证书转换为 PEM 编码的 X.509 证书

node.js - MongoDB 和 API 集成 - 如果不存在则创建新用户

node.js - 导出mongodb集合数据并使用node js导入回来

c# - MongoDB C# DateTimeOffset 序列化

Azure 上传/安装 SSL 证书问题 - "Can' t 上传证书”

ssl - 检索 PEM 格式证书的到期时间

python - web.py 上的 SSL 证书链不完整