如果您在负载平衡器(例如haproxy)后面有5台Web服务器,并且它们正在为同一域提供内容,那么您是否需要所有服务器的SSL证书,或者可以在每台服务器上使用相同的证书?

我知道您可以将所有SSL请求放在特定的服务器上,但这需要分布式的会话信息,并希望它不会出现。

#1 楼


如果负载平衡器(...)后面有5台Web服务器,那么所有服务器都需要SSL证书吗?


这要视情况而定。
/>
如果您在TCP或IP层(OSI层4/3,又名L4,L3)上进行负载平衡,那么是的,所有HTTP服务器都需要安装SSL证书。

如果您在HTTPS层(L7)上进行负载均衡,则通常会单独在负载均衡器上安装证书,然后在负载均衡器和网络服务器之间的本地网络上使用普通的未加密HTTP(对于

如果安装量较大,则可能是在Internet-> L3负载平衡-> L7 SSL集中器层->负载平衡器-> L7层HTTP应用程序服务器...

HAProxy的作者Willy Tarreau很好地概述了HTTP / HTTPS负载均衡的规范方法。

每个服务器上的证书,然后确保获得证书支持这一点。通常,证书可以安装在多台服务器上,只要所有服务器都为一个完全合格的域名提供流量。但是,请验证您要购买的产品,证书颁发者会拥有令人困惑的产品组合...

评论


您现在可以从许多发行者处购买带有主题备用名称的证书。 SAN字段允许对多个FQDN有效的证书。警告...较旧的Web客户端(IE6!)可能存在一些问题,在某些情况下,如果“主题”属性的FQDN无效,则客户端将不会读取SAN属性。

– Ryan Fisher
2011-3-24在17:24

加1链接到Willy Tarreau的出色文章。

–内森·哈特利
2011年10月20日19:21

在中型到大型安装中,在Big IP或其他负载均衡器(上面列出的第二个选项)上进行SSL卸载的优点是速度更快,可伸缩性更高,复杂性更低(通常是LB上的一个证书),并且证书的成本更低许可方(多域和SAN证书价格昂贵)。

–达雷尔·蒂格(Darrell Teague)
13-10-8在18:46

@JesperM,您好,对于此流程,Internet-> L3负载平衡-> L7 SSL集中器层->负载平衡器,是否需要多个负载平衡器,或者仅一个实例就足以完成工作?

– jumping_monkey
20年4月2日,下午2:17

#2 楼

您应该能够在每个服务器上使用相同的证书。如果您的网站是www.gathright.com,则应该能够购买该FQDN的证书。然后,将其安装在平衡器后面的5台服务器中的每台服务器上。

或者,您可以为每个Web服务器获得单独的证书,但是将“ www.gathright.com”作为“主题备用名称” ”,这意味着这5个证书中的每一个都对适用于该常规FQDN的SSL和对特定服务器FQDN的SSL有效。

评论


为了阐明此响应,您将在生成请求的服务器上安装证书。然后,您将与私有密钥一起从该服务器导出证书,以便将其导入其他服务器。

–查尔斯
09年9月25日在18:44

天哪!是的,我忘了提到您需要导出私钥。谢谢,查尔斯。

– Ryan Fisher
2011-3-24在17:20

但是,如果我在每台服务器上使用SAN证书,那么它们是否都需要相同的私钥?

– anschoewe
16 Jun 28'在0:37



@anschoewe,不。他们每个人都有自己的私钥,如果您有5台计算机,则必须支付x5的价格。

– Alexis Wilke
16 Sep 16 '18:35

@AlexisWilke-不知道这意味着什么:如果他们使用SAN证书,则只需要一个证书,因此只需一个密钥,因此只需1个价格。 SAN证书可以在多台服务器上使用,以为一个或多个域服务;添加域而不是添加服务器时价格上涨

–dwanderson
18年6月28日在22:23

#3 楼

是的,如果它们在负载平衡器或负载平衡反向代理之后,并且它们都在为同一域提供内容,则可以在所有服务器上使用相同的证书和关联的私钥。

证书在由证书颁发机构签名时,断言证书颁发机构已验证证书上列出的名称。对于网站的证书,这表示网站的域名。您的浏览器期望与之通信的服务器(如果通过HTTPS进行通信)出示的证书的名称与浏览器认为与之通信的域名相同。 (例如,VeriSign不太可能为bankofamerica.com签署Hacker Joe的证书。因此,即使Hacker Joe设法拦截了您和bankofamerica.com之间的流量,Hacker Joe也不会为bankofamerica.com和您的浏览器提供签名证书会在整个位置都贴上红色的大警告标志。)

重要的是证书上的名称与浏览器认为正在与之交谈的域名匹配。您可以在Web群集中的多个Web服务器上使用带有正确名称的相同证书(带有关联的私钥),只要它们在负载均衡器后面即可。

还可以使用SSL-终止负载平衡器,在这种情况下,您将在负载平衡器上使用证书(带有关联的私钥),并且Web服务器不需要证书,因为它们与SSL无关。

#4 楼

我们的设置运行良好:

https trafic
     |
   pound
     |
http traffic
     |
  haproxy
     |
http traffic 
     |
web server 1 ... web server n


这种方式对流量进行解密,从这里开始,所有内容都是直接的http。优点:Web服务器上的配置更少,每个作业只有一个工具。您可以最大限度地利用英镑计算机上的CPU,并使Web服务器保持“正常”状态。如果正常运行时间很重要,那么您应该至少每个获得两个(磅,haproxy,Web服务器)。

评论


这也假定您的后端计算机在安全的专用网络上。在云中并非总是如此...

– Alexis Wilke
16 Sep 16 '18:36

嗨@jotango,英镑是多少?

– jumping_monkey
20年4月2日在2:24

#5 楼

对,您可以在每台服务器上使用相同的证书。您还可以实现SSL加速器,并将所有SSL流量卸载到该加速器。