如果您在负载均衡器(例如 haproxy)后面有 5 个 Web 服务器,并且它们为同一个域提供内容,您是否需要所有服务器的 SSL 证书,或者您可以在每台服务器上使用相同的证书?
我知道您可以将所有 SSL 请求放在特定服务器上,但这需要分布式会话信息,并且希望它不会出现这种情况。
如果您在负载均衡器(例如 haproxy)后面有 5 个 Web 服务器,并且它们为同一个域提供内容,您是否需要所有服务器的 SSL 证书,或者您可以在每台服务器上使用相同的证书?
我知道您可以将所有 SSL 请求放在特定服务器上,但这需要分布式会话信息,并且希望它不会出现这种情况。
这取决于。
如果您在 TCP 或 IP 层(OSI 第 4/3 层,也称为 L4、L3)上进行负载平衡,那么是的,所有 HTTP 服务器都需要安装 SSL 证书。
如果您在 HTTPS 层 (L7) 上进行负载平衡,那么您通常会单独在负载平衡器上安装证书,并在负载平衡器和 Web 服务器之间的本地网络上使用普通未加密的 HTTP(以获得最佳性能网络服务器)。
如果您有大型安装,那么您可能正在执行 Internet -> L3 负载平衡 -> L7 SSL 集中器层 -> 负载平衡器 -> L7 HTTP 应用程序服务器层...
HAProxy 的作者 Willy Tarreau对负载平衡 HTTP/HTTPS的规范方法有一个非常好的概述。
如果您在每台服务器上安装证书,请确保获得支持此功能的证书。通常证书可以安装在多台服务器上,只要这些服务器都只为一个完全限定域名提供流量。但是验证您购买的是什么,证书颁发者可能会有一个令人困惑的产品组合......
您应该能够在每台服务器上使用相同的证书。如果您的网站是 www.gathright.com,您应该可以购买该 FQDN 的证书。然后将其安装在平衡器后面的 5 台服务器上。
或者,您可以为每个 Web 服务器获取一个单独的证书,但将“www.gathright.com”作为“主题备用名称”包括在内,这意味着 5 个证书中的每一个对于该通用 FQDN 的 SSL 以及 SSL 都有效到特定的服务器 FQDN。
是的,您可以在所有服务器上使用相同的证书和关联的私钥,前提是它们位于负载均衡器或负载均衡反向代理之后,并且它们都在为同一个域提供内容。
证书在由证书颁发机构签名时,断言证书颁发机构验证了证书上列出的名称。对于网站的证书,这意味着网站的域名。您的浏览器希望与它通信的服务器(如果它通过 HTTPS 通信)提供与浏览器认为正在与之通信的域名同名的证书。(例如,VeriSign 不太可能为 bankofamerica.com 签署 Hacker Joe 的证书。因此,即使 Hacker Joe 设法拦截了您与 bankofamerica.com 之间的流量,Hacker Joe 也不会为 bankofamerica.com 和您的浏览器签署证书将在整个地方竖起大红色警告标志。)
重要的是证书上的名称与浏览器认为正在与之交谈的域名相匹配。您可以在 Web 集群中的多个 Web 服务器上使用具有正确名称的相同证书(带有关联的私钥),只要它们位于负载均衡器后面。
您还可以使用 SSL 终止负载均衡器,在这种情况下,您将在负载均衡器上使用证书(带有关联的私钥),并且 Web 服务器不需要证书,因为它们与它们没有任何关系SSL。
我们的设置运行良好:
这种方式磅解密流量,从这里开始一切都是直接的http。优点:Web 服务器上的配置较少,每个作业一个工具。您可以最大限度地利用磅机上的 CPU,并保持 Web 服务器“正常”。如果正常运行时间很重要,您应该至少获得两个(磅、haproxy、网络服务器)。
AFAIR,您可以在每台服务器上使用相同的证书。您还可以实施 SSL 加速器并将所有 SSL 流量卸载到它。