mongodb - 如何解决 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
文件。System
Keychain Access
一些链接建议我应该创建一个server.cnf
文件,一些链接建议我应该创建一个域证书。
有人还在关于 SO 的问题中建议应该从 Postman 开始,但这也不起作用。
任何人都可以帮助我找出这个错误,因为所有其他建议都非常令人困惑,而且所有这些建议似乎都在拐弯抹角。
解决方案
如果您收到此错误:
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 浏览器访问它是没有用的。
推荐阅读
- python - 如何在烧瓶 sqlalchemy 中保存图像列表
- c++ - 函数将 const ref 返回到 std::unique_ptr,它可以返回 null 吗?
- esp32 - Heltec ESP32 LoRa 接收中断
- python - 如何在从源代码编译的 Python 上安装 DistUtilsExtra?
- python - AttributeError:“str”对象没有属性“get_lect”
- apache-beam - apache beam (python SDK):后期(或早期)事件被丢弃并触发。如何知道丢弃了多少以及为什么?
- vue.js - 从 vue-hotel-datepicker 访问数据值
- postgresql - postgres中的oracle合并查询
- r - {dplyr} 总结没有按预期工作
- google-cloud-run - 使用 OpenTelemetry 在 Google Cloud Run 上跟踪传播