这里有两个基本问题:
如果我想通过反向代理 (P) 从 3 个不同的服务器(A、B、C)提供 SSL 内容,那么 SSL 的魔法在哪里发生?
我猜每个服务器都将负责处理 SSL 的东西,而 X 只是路由这些位,但我不确定。大概在这种情况下,我会在每台机器 A、B、C 上使用为 X 签名的相同证书。还是 X 自己完成所有 SSL 工作?
其次,在 Windows Server 2008 上用于反向代理的最佳网络服务器是什么?IIS、Apache 等。如果你有一个很好的例子来说明你的建议,那就加分。
谢谢你的帮助!
我假设“反向代理”是指充当代理与 DNAT(目标 NAT)的 Apahce 服务器。在这种情况下,您的客户端将具有内部 IP(IA、IB、IC)的服务器(A、B、C)视为外部或公共 IP 设备(XA、XB、XC)。
另一方面,如果您想将(IA、IB、IC)设备表示为单个外部 IP (XIP),那么您将需要使用包含多个主题备用名称的 SSL 证书。事实上,如果您只有一个公共 IP,并且您希望多个 SSL 站点针对该公共 IP,则无论反向代理如何进行,您都需要使用具有多个主题备用名称的证书。该属性在 X.500 域中称为“SubjAltName”。
此链接可能对您有所帮助: http ://www.wlug.org.nz/ApacheReverseProxy
除非您的 DNAT 知道如何处理 SSL 证书,否则您真的无法 DNAT HTTPS 连接——您基本上是在创建 MITM(中间人)过程;SSL 试图防止的事情之一。
我引用我们优秀的 CMS 支持人员的话
“为此需要考虑的是您将在哪里进行 SSL 终止
换句话说,请求将是客户端到代理的 https,然后是从代理的 http 到您让 apache 终止 SSL 的内部框
或者
整个对话都是 SSL
我赞成第一个选项,让 Apache 终止 SSL,因为没有真正需要将整个对话作为 https
我会将证书放在虚拟主机指令中的 apache 服务器上,然后将该请求代理到内部盒子。”
换句话说,但更容易避免在您自己的网络上进行内部加密。
据我所知,IIS 不会反向代理(肯定是 IIS 6,以后不确定),所以它是 Apache。你也可以使用 SQUID,它看起来不错,虽然我没有直接的经验。
另请参阅我在 StackOverflow ( https://stackoverflow.com/questions/283636/apache-reverse-proxy-set-up-ssl-certificate ) 上关于 Apache 正确配置的问题。
您可以设置 Microsoft ISA 服务器作为 SSL 的反向代理。然后,这会将流量通过端口 80 转发到驻留在另一台服务器上的 IIS。如果您想使用通配符证书,这也适用于它们。我相信您也可以使用它来进行负载平衡。