在Neo4j配置中强制HTTPS

时间:2013-12-17 17:25:30

标签: rest neo4j haproxy

即使X-Forwarded-Host标题不存在,是否可以强制使用HTTPS网址?

更新

我们在Neo4j服务器前使用HAProxy。配置是

frontend proxy-ssl
  bind 0.0.0.0:1591 ssl crt /etc/haproxy/server.pem
  reqadd X-Forwarded-Proto:\ https
  default_backend neo-1

当每个连接只包含一个请求时,这很有效。但是,对于使用keep-alive的Neo4j驱动程序(如Py2neo),标题仅添加到第一个请求中。

如果没有X-Forwarded-Proto标头,生成的网址为http://host:1591,而不是https://host:1591

根据HAProxy documentation,这是正常行为:

  

因为HAProxy的HTTP引擎不支持keep-alive,所以只支持头文件   将在第一次TCP会话请求期间传递。随后都是   标题将仅被视为数据而不会被分析。此外,HAProxy   从不接触数据内容,它会在标题末尾停止分析。

解决方法是在前端中添加option http-server-close,因此它会强制每个请求都在自己的连接中,但如果我们可以支持keep-alive则会更好。

2 个答案:

答案 0 :(得分:0)

将类似Apache或Nginx的东西放在Neo4j服务器前面来执行该任务。

答案 1 :(得分:0)

就py2neo而言,我可以很容易地添加一些功能来满足这种情况。如果我要为所有https连接添加X-Forwarded-Proto: https该怎么办?如果不使用代理,会导致问题吗?