amazon-web-services - Neo4j:服务不可用:Websocket 连接失败
问题描述
目前正在尝试使用 Neo4j 浏览器 v3.2.10 和 Neo4j 3.4.9启动 [Community AMI ( https://aws.amazon.com/marketplace/pp/B071P26C9D )。我正在使用 Google Chrome 访问浏览器。我收到以下错误:
获取 SSL 证书是目前唯一的运行方式吗?
ServiceUnavailable:WebSocket 连接失败。由于 Web 浏览器中的安全限制,此 Neo4j 驱动程序无法找到失败的原因。请使用您的浏览器开发控制台来确定失败的根本原因。常见原因包括数据库不可用、使用错误的连接 URL 或临时网络问题。如果您启用了加密,请确保您的浏览器配置为信任 Neo4j 配置使用的证书。WebSocket
readyState
是:3
解决方案已按照Neo4j 的故障排除连接问题的建议进行了尝试:
- 按照浏览器的说明信任螺栓端口的服务器证书,然后刷新页面。Chrome 上的
http://ec2-54-xxx-xxx-111.compute-1.amazonaws.com:7687/not a WebSocket handshake request: missing upgrade
返回: ,并且没有信任此证书的选项。 - 使用谷歌浏览器当前使用谷歌浏览器 不工作
- 在 neo4j 配置中设置 dbms.connector.bolt.tls_level=OPTIONAL。
- 根据 dbms.connector.bolt.address=0.0.0.0:7687 在 neo4j 配置中设置 dbms.connector.bolt.address=0.0.0.0: 7687根据配置 Neo4j
neo4j.template
更改后 ,上述两种解决方案均未解决问题云实例/etc/neo4j/
- 安全组应符合以下要求:
所以人们不认为这是一个重复的问题,这些解决方案不起作用: Web Sockets Connections Failure... doesn't work and options are not available in v3.2.10
Neo4J Websocket 连接失败(TCP/IP Confi) 所有解决方案都不起作用...
好奇最好的选择是什么。谢谢
解决方案
我们遇到了这个问题。我们花了一天时间,但我们找到了解决方案。我们使用了外部签名的证书,但它仍然不起作用!令人沮丧的是 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 连接器以将此文件用作您的证书。你会发现它终于开始工作了。
推荐阅读
- java - 更改 sharedpreferences 数据后如何自动更改 android menuItem 数据?
- python - 如何对密码实施 3-try 授权?
- css - 如何使用css在悬停时翻转div
- node.js - 在 Typescript 中为同步函数添加超时
- python-3.x - 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1051) Python
- c# - NullReferenceException 但我无法确定未分配的对象
- laravel - Laravel Eloquent:具有 3 级深度的多个嵌套关系
- asp.net - 有没有办法保存 Visual Studio .net Web 应用程序,以便旧版本的 Visual Studio 能够运行该项目?
- c++ - 未指定的常量表达式值和 ODR
- google-cloud-platform - 启动 VM 实例“instance-1”失败。错误:[nvidia-tesla-t4] 功能与创建实例不兼容