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