【问题标题】:How does a double layer of reverse proxy pass through invalid SSL cert?双层反向代理如何通过无效的 SSL 证书?
【发布时间】:2021-07-01 23:03:34
【问题描述】:

我有以下服务器设置:

                 +----------+        +-----------+
                 |          |        |           |
internet ----->  |   Kong   | -----> |  HAProxy  | -----> backend servers
                 |          |        |           |
                 +----------+        +-----------+
  • Kong 设置端口 443 绑定与有效的 SSL 证书
  • HAProxy 设置了端口 443 绑定和从端口 80 到 443 的重定向

现在我刚刚发现安装在 HAProxy 中的 SSL 证书过期了。但是,它通过 Internet 是不可见的,因为它们通过 Kong 访问,并且 Kong 具有有效的 SSL 证书。直接访问 HAProxy 会出现 SSL certificate problem: certificate has expired 错误。对此有何解释?第一层反向代理的SSL证书如何抑制第二层的错误?

【问题讨论】:

    标签: ssl https reverse-proxy haproxy kong


    【解决方案1】:

    第一层反向代理的SSL证书如何抑制第二层的错误?

    客户端创建到 Kong 的 SSL 连接,并且只会检查来自 Kong 的证书。 Kong 创建与 HAProxy 的独立 SSL 连接,并应检查来自 HAProxy 的证书。然后只有应用程序有效负载通过 Kong 和 HAProxy 在客户端和服务器之间传递,而不是任何 SSL 相关信息。

    第一层反向代理的SSL证书如何抑制第二层的错误?

    它不会抑制任何东西。 没有在应用程序级别通过 SSL 错误传递的机制。 Kong 正确验证来自 HAProxy 的证书应该会导致连接关闭,即不在客户端和服务器之间转发任何应用程序数据。但是如果证书没有被 Kong 正确验证,则不会注意到证书错误,应用程序数据将在客户端和服务器之间转发。 客户端不会注意到任何事情,因为它只看到 Kong 的证书

    【讨论】:

    • 感谢您的回答。好的,在高层次上理解了您的答案。但是 Kong 本身不是一个“应用程序”,因此它在转发数据时如何跳过验证?
    • @yonasstephen:证书验证是一个额外的步骤。虽然应用程序应该更好地验证证书,但它通常可以被明确禁用。而this post 似乎暗示 Kong 即使在默认情况下也不会验证证书,至少在旧版本中不会。
    猜你喜欢
    • 2020-10-12
    • 2010-09-21
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    相关资源
    最近更新 更多