Neo4j:服务不可用:Websocket 连接失败

njh*_*jho 5 ssl amazon-ec2 amazon-web-services neo4j

目前正在尝试使用 Neo4j 浏览器 v3.2.10 和 Neo4j 3.4.9启动 [社区 AMI ( https://aws.amazon.com/marketplace/pp/B071P26C9D )。我正在使用 Google Chrome 访问浏览器。我收到以下错误:

目前获取 SSL 证书是运行的唯一方法吗?

ServiceUnavailable:WebSocket 连接失败。由于 Web 浏览器的安全限制,此 Neo4j 驱动程序无法得知失败的原因。请使用您的浏览器开发控制台来确定失败的根本原因。常见原因包括数据库不可用、使用错误的连接 URL 或临时网络问题。如果您已启用加密,请确保您的浏览器配置为信任 Neo4j 配置使用的证书。WebSocketreadyState是:3

![37%20PM|689x219](上传://f1ge2zafdXndlLsqUDv8mwIt2Zn.png)


按照解决Neo4j 连接问题的建议尝试的解决方案:

  1. 按照浏览器的指示信任 Bolt 端口的服务器证书,然后刷新页面。
    Chrome 上的http://ec2-54-xxx-xxx-111.compute-1.amazonaws.com:7687/返回: not a WebSocket handshake request: missing upgrade,并且没有信任此证书的选项。
  2. 使用 Google Chrome当前使用 Google Chrome 不起作用
  3. 在 Neo4j 配置中设置 dbms.connector.bolt.tls_level=OPTIONAL。
  4. 按照 dbms.connector.bolt.address=0.0.0.0:7687 在 Neo4j 配置中设置dbms.connector.bolt.address=0.0.0.0:7687在按照neo4j.template配置Neo4j 进行更改后,上述两种解决方案都没有纠正问题云实例/etc/neo4j/
  5. 安全组应满足以下条件: ![22%20PM|690x171](上传://mdHsdf38NvwnbGCOUxTKfyh0vdQ.png)

所以人们不认为这是一个重复的问题,这些解决方案不起作用: Web Sockets Connections Failure...不起作用并且选项在 v3.2.10 中不可用

Neo4j-3-1-3 远程图数据库访问

Neo4J Websocket 连接失败(TCP/IP 配置)所有解决方案均不起作用...


好奇最好的选择是什么。谢谢

小智 3

我们遇到了这个问题。我们花了一天时间但找到了解决方案。我们使用了外部签名的证书,但它仍然不起作用!令人沮丧的是 Web 前端工作正常。所以我们得到了完整的挂锁快乐信号,但是一旦我们使用 Bolt,它就会失败并出现错误。

因此,首先要知道的是,当您使用 Chrome(或大多数浏览器)时,它可以出色地搜索互联网以查找证书合法性的证据。因此,如果你错误地构建了你的链条,你就会侥幸逃脱惩罚。然而,对于 Web Sockets 来说,它似乎遵循不同的规则。它不进行这种有用的搜索。Chrome 似乎在给出任何错误方面确实非常糟糕,因此很难诊断。

因此,我们所做的就是访问 Bolt/WebSocket 端口,将 url Bolt+s://{myserver} 更改为 https://{myserver}。它会连接,但会给你一个随机错误。但它确实为您提供了访问证书的权限。你可以看到整个链条。我们发现我的链条与 Chrome 链条不同。我的链条经过外部网站检查,是正确的,但与 Chrome 的不同。这是检测到的,因此我们得到了被拒绝的服务。

因此,我们所做的是使用 https:// 技巧通过导出证书来复制证书(不要忘记 Base 64 版本而不是二进制文件)。将整个链复制到一个文档中,并在 Neo4j 中使用它作为 Bolt 的证书。

如果终于开始工作了。

回顾一下。使用 https:// 访问 Bolt+s:// 连接,这使您可以访问证书和证书链。将证书导出为 Base64 和链(向后操作)。将所有这些复制到一个文件中,并使用 neo4j.conf 指向您的 Bolt 连接器以使用该文件作为您的证书。你会发现它终于开始工作了。