【问题标题】:Apache Reverse Proxy With SSL使用 SSL 的 Apache 反向代理
【发布时间】:2009-02-13 23:18:41
【问题描述】:

是否可以通过 HTTPS 反向代理到内部服务器并从后端服务器提供证书而不是代理上的证书?

【问题讨论】:

    标签: apache ssl reverse-proxy


    【解决方案1】:

    konqi> 这几乎是我多年来一直使用的反向代理配置,使用重写规则而不是代理指令,这在此处无法正常工作。

    RewriteEngine On
    # is the virtualhost in the allowed server list ?
    RewriteCond %{SERVERNAME} ^(server1|server2|server3|server4)\.domain\.com$
    # then redirect to the real server (which the virtualhost name resolves to on the proxy)
    RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [P]
    # else block it all
    RewriteRule ^.*$ - [F]
    

    简单明了。

    【讨论】:

    【解决方案2】:

    我认为这是不可能的,因为它允许man in the middle attacks

    【讨论】:

    • 我以为是这样,只是想澄清一下。谢谢
    • 将 SSL/TLS 从一台服务器代理到另一台服务器本身并不能促进 MITM。只有当中间/代理服务器终止 SSL 连接(通过使用有效证书或某些恶意证书)然后将该流量重定向到其他地方时,它才是 MITM。负载均衡器实际上很常见,它可以是 Apache 服务器,但更常见的是 Nginx,将 SSL 流量代理到终止服务器,因为如果未解密,代理服务器无法检查流量。
    【解决方案3】:

    发现这个配置如下:

    • 您有一个域 example.com,其中包含不同的子域作为 VHOST(one.example.com、two.example.com、..)
    • 您的域 *.example.com 有一个通配符证书
    • 你需要 mod_proxy
    • 使用代理指令适用于匹配 *.example.com 的不同服务器名
    • 如果代理后面没有其他网络服务器,请在上面的 VirtualHost:443 配置中为您的域添加不带 SSL 的代理。

    辣妹!不敢相信这行得通,但似乎行得通!未找到该行为的任何规范,但请自行尝试。

    诚挚的问候, ~马塞尔

    P.S:这里不涉及任何安全问题!请记住,这些对“后端”的代理调用是不安全的,因此(如 Rob 所述)具有潜在危险!

    【讨论】:

      最近更新 更多