【问题标题】:routines:SSL23_GET_SERVER_HELLO:unknown protocol when trying to connect to neo4j server using proxy例程:SSL23_GET_SERVER_HELLO:尝试使用代理连接到 Neo4j 服务器时的未知协议
【发布时间】:2019-03-22 22:14:09
【问题描述】:

我在远程 linux 服务器上安装了 neo4j-server。该服务器使用 nginx 并具有虚拟主机。这是配置:

server {
    listen 80;
    listen [::]:80;

    server_name neo.mydomain.in.ua;

    access_log /var/log/nginx/neo-browser-access.log;
    error_log /var/log/nginx/neo-browser-error.log;

    location / {
        proxy_pass http://localhost:7474;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

我使用它是因为我不能使用端口 7474,只能使用 80 或 8080。

http://neo.mydomain.in.ua/browser/,效果很好,我看到了 neo4j-browser。但我无法使用任何客户端(即使使用控制台客户端)连接到数据库。我得到了这个:

>> neo4j-client -u neo4j neo.mydomain.in.ua 80
OpenSSL error: 336031996:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
error: Unexpected error

但是当我尝试使用邮递员时,我得到了

>> http://neo.mydomain.in.ua/db/data/

{
    "errors": [
        {
            "code": "Neo.ClientError.Security.Unauthorized",
            "message": "No authentication header supplied."
        }
    ]
}

这意味着我可以访问 DB,但不能通过 neo4j-client。我尝试使用基本身份验证登录,它的工作原理。

怎么了?

【问题讨论】:

  • 当您尝试从浏览器连接时出现什么错误?
  • 我的浏览器没有任何错误。我看到了 neo4j-browser 登录页面。效果不错
  • 你能登录吗?
  • 当然。登录成功
  • 如果可以登录,则使用登录页面上的连接URL从客户端连接。

标签: nginx neo4j ssl-certificate nginx-reverse-proxy libneo4j-client


【解决方案1】:

您需要打开 7687 端口才能连接 Neo4j 数据库。

当从邮递员连接时,提供身份验证并将连接 URL 中的端口更改为 7687。

【讨论】:

  • 我只能使用 80 或 8080
【解决方案2】:

问题解决了。我只是取消注释

dbms.connectors.default_listen_address=0.0.0.0

在我的 neo4j.conf 中。但奇怪的是,即使这个选项被禁用,我也可以使用邮递员登录 neo4j。 \(0_0)/

【讨论】:

    猜你喜欢
    • 2014-04-17
    • 1970-01-01
    • 2014-02-03
    • 2014-04-23
    • 2023-03-31
    • 2019-03-12
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多