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

时间:2019-01-06 23:48:55

标签: amazon-web-services ssl amazon-ec2 neo4j

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

当前是否唯一获得运行SSL证书的方法?

  

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

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


解决方案根据Troubleshooting Connection Issues to Neo4j的建议进行了尝试:

  1. 按照浏览器的说明来信任螺栓端口的服务器证书,然后刷新页面。
    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 根据{{​​3}}
  5. ,在neo4j.template中更改了/etc/neo4j/后,上述两种解决方案均无法解决问题。
  6. 安全组应符合以下要求: Configuring Neo4j Cloud Instances

所以人们不认为这是一个重复的问题,这些解决方案不起作用: ![22%20PM|690x171](upload://mdHsdf38NvwnbGCOUxTKfyh0vdQ.png)不起作用,并且在v3.2.10中没有可用的选项

Web Sockets Connections Failure...

Neo4j-3-1-3 Graph Database Access Remotely(TCP / IP配置) 所有解决方案都行不通...


好奇前进的最佳选择是什么。谢谢

2 个答案:

答案 0 :(得分:1)

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

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

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

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

如果终于开始工作了。

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

答案 1 :(得分:0)

要解决此问题,您需要一个SSL证书。参见:

https://medium.com/neo4j/getting-certificates-for-neo4j-with-letsencrypt-a8d05c415bbd