【问题标题】:How to re-direct Internet https requests to an intranet https server without untrusted server issue如何在没有不受信任的服务器问题的情况下将 Internet https 请求重定向到 Intranet https 服务器
【发布时间】:2014-12-12 05:03:27
【问题描述】:

场景:我们有一个设备 (R) 广播 wifi 网络。目标是能够将连接到此 wifi 的客户端设备限制为仅由 R 提供的内容。R 有一个提供内容的 nginx 服务器和一个节点服务来呈现一些强制门户功能。

挑战:虽然我们希望连接到 Wifi 的设备只能从 R 获得内容,但用户没有理由不键入 Internet 主机名(如 https://google.com/)是他的浏览器的地址字段。对于此类 Internet http URL,我们使用 301 将请求重定向到 R 的 https 服务,我们不会遇到任何问题,但是对于 Internet 上的 Internet https URL,我们会得到 我想取消客户端浏览器中不受信任的 https 证书弹出窗口。

寻求的解决方案:我希望 R 也无缝地处理 https 请求,而客户端设备不会抱怨 https 证书。这是可行的吗?

【问题讨论】:

    标签: networking ssl nginx https url-redirection


    【解决方案1】:

    HTTPS 是 SSL/TLS 隧道内的 HTTP。要建立此隧道,您需要正确识别对等方,否则可能会发生中间人攻击。由于重定向是通过 HTTP 完成的,因此您首先需要建立 SSL/TLS 隧道,然后才能进行重定向。这意味着,如果您尝试重定向 google.com,则需要一个将自己标识为 google.com 的证书,并且该证书需要由浏览器信任的人(即受信任的根 CA)签名。由于您没有这个并且可能永远不会获得(因为只有域的所有者才能获得这样的证书)您尝试做的事情是不可能的。

    【讨论】:

    • 如果您控制网络上的所有客户端,您可以创建自己的 CA 根证书并将其安装在所有客户端上。有了这个,您可以即时为请求的域创建证书并提供内容。此外,您还必须停用固定证书。
    【解决方案2】:

    这是不可能的,因为它违反了事情的运作方式。考虑一下:如果攻击者可以做同样的事情,他们可以将使用 https 的银行网站重定向到他们控制的服务器,无论是在同一网络上还是通过恶意软件。 https 的特性阻止了这种情况的发生。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2012-05-05
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      相关资源
      最近更新 更多