ssl - HAProxy - SSL SNI 不便

标签 ssl haproxy

当我尝试配置 SSL SNI 时,我在 haproxy 1.5 中发现了一些不便。

有一段haproxy配置:pastebin

我想将客户端 IP 传递给后端。无论我如何配置 reqadd/set-header X-Forwarded-For/Real-IP,我总是在 X-Forwarded-For 中获得一个 haproxy IP 地址。

有人尝试在 HAProxy 上使用 SSL SNI 传递真实 IP ? :/

最佳答案

从这个配置来看,您似乎在进行 SNI 嗅探,但所有后端都在循环回 HAProxy 本身……这不是需要 SNI 嗅探的情况。也许我忽略了其他需要这样做的东西。

您在 X-Forwarded-For 中获取代理 IP 的原因应该很明显——HAProxy 正在与自己对话。第一次通过代理客户端连接,只要代理可以在第二次通过时确定,因为只有第二次通过 HTTP。它只看到传入的 TCP 连接已经到达......来自它自己。

解决方案是第一遍后端使用代理协议(protocol)传递原始客户端信息,第二遍前端对其进行解码。

accept-proxy 添加到第二遍前端的 bind 行,并将 send-proxy 添加到 server 第一遍后端上的行。这样,在 HAProxy 与自身对话的连接上,第一遍后端将发送 Proxy 协议(protocol)前导码,第二遍前端将解码传入值并将其放入 X-Forwarded-For.

关于ssl - HAProxy - SSL SNI 不便,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42187861/

相关文章:

ruby - 在 Selenium Grid 环境中使用 Watir-WebDriver 绕过证书错误

ios - Xcode SSL 固定信任 anchor 证书

ssl - ERR_SSL_VERSION_OR_CIPHER_MISMATCH 从 AWS API 网关到 Lambda

c# - 没有 SSL - 证书的 C# 和 PHP 之间的加密通信?

ruby-on-rails - 为elasticbeanstalk上的rails应用程序配置自定义域ssl

apache - 配置 HAProxy+nginx+PHP-FPM 以超越 Apache+mod_php

ssl - HAproxy 超时(504 错误)与大型 POST 正文

google-chrome - ECC 证书在 Chrome 中不起作用?

docker - redis哨兵高可用haproxy

linux - Centos 7 上的 HAProxy