当前正在尝试使用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
解决方案根据Troubleshooting Connection Issues to Neo4j的建议进行了尝试:
not a WebSocket handshake request: missing upgrade
,并且没有信任该证书的选项。neo4j.template
中更改了/etc/neo4j/
后,上述两种解决方案均无法解决问题。
所以人们不认为这是一个重复的问题,这些解决方案不起作用: 不起作用,并且在v3.2.10中没有可用的选项
Web Sockets Connections Failure...
Neo4j-3-1-3 Graph Database Access Remotely(TCP / IP配置) 所有解决方案都行不通...
好奇前进的最佳选择是什么。谢谢
答案 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