ssl - haproxy反向ssl终止

标签 ssl https haproxy

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

以下结果无法与对等方安全通信:请求的域名与服务器的证书不匹配。

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 直通TLS 终止

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

您可以找到有关这两种方法的更多信息 here .

希望这有帮助。

关于ssl - haproxy反向ssl终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50152450/

相关文章:

node.js - 如何在没有任何第三方模块的情况下在 Node Js 中发布 https 帖子?

.net - 将wsHttpBinding SSL传输安全性与消息安全性结合使用有什么好处?

java - HttpClient ssl 和 login.facebook.com

java - 将私钥导入Java时出错

security - 去除 HTTPS 页面中的 IE 警告

HAProxy - 后端服务器的基本身份验证

sql-server - 如何确保 SSIS 使用 SSL 将数据传输到 Azure 数据库

android - (httplog)-静态 : issbsettingenabled false android

ssl - HAproxy SSL 握手失败

linux - 如何在 HAProxy 中设置动态变量?