首页 > 解决方案 > 如何解决 MongoDB 中 SSLHandshakeFailed 的问题?

问题描述

我对 MongoDB 很陌生。事实上,我是 MEAN Stack 的新手。我已经在我的 Mac 上成功安装了 MongoDB 服务器。在我运行以下命令后:

mongod

服务器在端口上启动27017。我尝试通过在 chrome 窗口上输入 localhost URL 来访问服务器:

http://127.0.0.1:27017/

我在运行服务器的终端窗口中收到以下错误:

SSLHandshakeFailed: SSL handshake received but server is started without SSL support.

为了解决这个问题,我用谷歌搜索了这个错误,并从这个这个链接中尝试了一些以下建议:

openssl genrsa -des3 -out rootSSL.key 2048 这将创建一个.key文件。然后,

openssl req -x509 -new -nodes -key rootSSL.key -sha256 -days 1024 -out rootSSL.pem 这将创建一个.pem文件。

我什至在in 中添加了.pem文件。SystemKeychain Access

一些链接建议我应该创建一个server.cnf文件,一些链接建议我应该创建一个域证书。

有人还在关于 SO 的问题中建议应该从 Postman 开始,但这也不起作用。

任何人都可以帮助我找出这个错误,因为所有其他建议都非常令人困惑,而且所有这些建议似乎都在拐弯抹角。

标签: mongodbmean-stack

解决方案


如果您收到此错误:

SSLHandshakeFailed: SSL handshake received but server is started without SSL support.

...您可能正在访问https://127.0.0.1:27017/而不是http://127.0.0.1:27017/. 检查你的拼写。

此外,HTTP 接口不适用于最新的 MongoDB 版本。文档说:

在 3.6 版更改:MongoDB 3.6 删除了已弃用的 HTTP 接口和 MongoDB 的 REST API。

当我在我的 MongoDB 服务器上尝试这个时,我得到:

% curl http://localhost:27017
It looks like you are trying to access MongoDB over HTTP on the native driver port.

因此,除了验证服务器是否已启动之外,通过 Web 浏览器访问它是没有用的。


推荐阅读