Ha代理反向 SSL 终止



如何使用ha 代理实现反向 SSL 终止? 从我的后端通过 HAproxy 我需要启用 https 的网络服务。如何通过 HAProxy 成功将所有流量代理到该服务?

以下结果为Unable to communicate securely with peer: requested domain name does not match the server's certificate.

frontend foofront
bind 127.0.0.1:443
mode tcp
default_backend foo
backend fooback
mode tcp
balance leastconn
server foo foo.bar.com:443  check

使用 HAProxy,您通常有两个选项来处理与 TLS 相关的场景。TLS PassthroughTLS Termination.

TLS 直通

看起来您正在尝试在您给出的示例中执行此操作。

在这种模式下,HAProxy不会以任何方式接触流量,而只是将其转发到后端。当涉及TLS时,这意味着后端必须为访问它的域提供适当的证书 - 如果您的HAProxy正在处理myexample.com的流量,后端服务器将需要安装适当的证书myexample.com

您始终可以使用openssl s_client检查提供哪个证书:

openssl s_client -connect localhost:443

TLS 终止

或者,您可以在HAProxy本身上终止 TLS 流量。这将允许您使用任何后端(加密和未加密(。在这种情况下,HAProxy本身会解密myexample.com流量并将其转发到后端。

在您的情况下,配置将如下所示:

frontend foofront
bind 127.0.0.1:80
bind 127.0.0.1:443 ssl crt /path/to/cert/for/myexample.com
mode tcp
default_backend foo
backend foo
mode tcp
balance leastconn
server foo foo.bar.com:443 check ssl verify none # or verify all to enforce ssl checking

您可以在此处找到有关这两种方法的更多信息。

希望这有帮助。

最新更新