从 Apache 到 Wildfly 的 SSL 重定向

SSL redirection from Apache to Wildfly

我在 Wildfly-8 上有两个项目 运行,每个项目都有两个 SSL 证书和一个 IP。

我发现我应该为一个 SSL 证书拥有一个 IP。

但是我需要为一个IP使用这两个SSL。我找不到使用 Wildfly 的方法,但有一种方法可以使用 Apache Server。所以,我安装了 Apache Server 到 Wildfly。

我在 Apache 上监听 https 端口 (443) 并将其重定向到 Wildfly 的 http 端口(我使用的是 8080)。它工作没有任何问题。

我想知道的是;

1. Is Apache decrypt request and redirect it to Wildfly?
2. Is it correct way to do it or I have done it by chance?
3. Does this method create a security hole?

我用谷歌搜索了一些,但找不到满意的答案。

感谢回复。

对于这个答案,我假设 "redirecting" 你的意思是 "proxying":Apache 收到请求,将其代理给 Wildfly,从 Wildfly 收到答复,将答复发送给客户端.

如果您指的是其他意思,那么简单的回答是:这是错误的[1]。

  1. Is Apache decrypt request and redirect it to Wildfly?

是的。 Apache 将接收和发送安全数据 to/from 客户端。它与 Wildfly 的通信将是纯文本。

  1. Is it correct way to do it or I have done it by chance?

这是通常的做法,是的。换句话说:一个负载平衡器 and/or 一个 Wildfly 前面的代理(在你的例子中是 Apache)。 public 互联网无法直接访问 Wildfly。

  1. Does this method create a security hole?

确实如此,就像其他一切都是证券一样"compromise"。在这种情况下,您以更 practical/manageable 架构的名义信任您的内部网络。如果您不信任您的内部网络,您应该寻找其他解决方案。在一般情况下,支付的价格对我来说似乎是公平的,因为您将 "only" 对 Apache 和 Wildfly 之间的 man-in-the-middle 持开放态度。所以,如果您信任您的内部网络,您应该相信那里不会有任何 MITM。

编辑

[1] - 就像生活中的其他一切一样,没有绝对的真理。基本上,在这样的场景中可以使用 3 种技术:通过、边缘和 re-encryption。

  • 传递是一个 "dumb" 管道,代理不知道任何关于 TLS 的信息。然后 Wildfly 将处理与客户端的安全通信。我不确定 Apache 是否会这样做,但这可以在 TCP 模式下使用 haproxy 来完成;
  • Edge(或卸载)就是我上面描述的情况:Client talks TLS with Apache, Apache talks plaintext with Wildfly;
  • Re-encryption,类似于Edge,但是Apache和Wildfly之间的通信也是TLS,使用不同的证书。