我最近遇到了一种情况,我运行的 Web 服务器无法再处理 HTTPS 流量(由于某些 SSL 证书问题)。由于服务器无法处理此流量,我无法使用 Apache 重定向规则重定向到非 https。然后我尝试在防火墙/NAT 设备上将 XXXX:443 重定向到 XXXX:80,但似乎无法使其正常工作。
我并不是在问如何做到这一点,因为它特定于我的基础设施和设备。但是,这样做真的可行吗?一位同事建议,这可能行不通,因为客户端请求的是安全连接,而我们响应的连接不安全,导致连接失败。这与响应 302 并强制客户端使用 apache 重定向发出新的非 https 请求不同。
答案1
不会。在防火墙上将端口 443 重定向到 80 只会重定向它。客户端会期望启用 SSL 的某个东西会应答,但他们得到的是纯 HTTP 应答。这将导致错误(例如ssl_error_rx_record_too_long
)。
你提到的这个东西叫做SSL 卸载。当某个东西(基本上是启用 HTTPS 的 Web 服务器)卸载从 HTTPS 流中获取 SSL/TLS 并从中生成 HTTP,然后将其传递给 HTTP Web 服务器,充当代理。
显然,卸载程序不应该有任何证书问题。
答案2
如果您可以默许降级 HTTPS 连接,则您可以轻松执行 MITM 攻击,因此无论如何这种行为都是不可取的。
此外,在您的 Web 服务器知道如何处理请求之前,需要建立 SSL 连接,因为请求本身已经以加密形式发送,因为请求数据至少与响应一样敏感(明文凭证、登录 cookie、发布的内容……)