MongoDB: SSL/TLS 握手失败,找不到合适的服务器

MongoDB: SSL/TLS handshake failed and No suitable servers found

所以我遇到了一些与 Mongo 和 SSL 证书相关的问题。 不托管 mongo 实例(针对自托管者的其他答案)。

我得到的错误是:

PHP Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: 
No suitable servers found (`serverSelectionTryOnce` set): 
[TLS handshake failed: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed calling ismaster on 'x.y.mongodb.net:27017'] [TLS handshake failed ...........

你是怎么解决这个问题的? 下一步是联系 Mongo 支持,这可能很耗时,因此非常感谢您提供任何信息。

Mongo Atlas 最近将根证书从 IdenTrust 更改为 ISRG。他们每 45 天轮换一次证书。您的集群在上次计划轮换时开始使用新的根 CA。

类似这样的内容应该告诉您正在使用什么 CN:

echo | openssl s_client -showcerts -connect x.y.mongodb.net:27017 2> /dev/null | grep -E "(Certificate|CN\s*=|O\s*=)"

检查您的收件箱中是否有任何通知,例如“MongoDB Atlas TLS 根证书的更改”。它应该包含有关更改的详细信息,请提前沟通。

否则,请通过在 Atlas UI 中聊天或通过电子邮件联系支持团队。我相信他们有适合您案例的剧本,不会花太多时间。