【问题标题】:Detect HTTPS without SSL Termination在没有 SSL 终止的情况下检测 HTTPS
【发布时间】:2016-05-27 19:45:31
【问题描述】:

我试图找出地址栏中是否有 https,因为我在 HAPROXY 之前有 SSL 终止,但如果它是 HTTP,我希望 HAPROXY 进行重定向(我知道有点奇怪的请求)。

我尝试了: 重定向方案 https if !{ ssl_fc }

但它最终会进入一个永无止境的循环,因为它的数据包已经没有 SSL。有没有另一种方法来获取地址栏上的前缀?它也适用于多个域,因此请尝试使用通配符。

【问题讨论】:

    标签: haproxy


    【解决方案1】:

    我在 HAPROXY 之前有 SSL 终止

    我假设您的意思是 SSL 在 ELB 上终止?

    如果是这样:

    redirect scheme https unless { hdr(x-forwarded-proto) -m str https }
    

    http 模式下的 ELB 在 SSL 连接上添加 X-Forwarded-Proto: https。否则,该值设置为http。除非标头值符合您的预期,否则生成重定向。

    【讨论】:

    • 这正是我试图做的,你的修复工作完美,谢谢。我只是没有把那个包裹有更多的通用修复。
    • 不,就是这样。 ssl_fc (SSL/TLS on front-end connection) fetch 仅指 HAProxy 本身的前端套接字。这在浏览器直接连接到代理时有效,但它不知道前面是否有实际终止 SSL 的设备,因此标头提供了提示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2015-03-03
    相关资源
    最近更新 更多