我设置的服务器将承载多个负载平衡的EC2实例中的多个SSL域,作为一个真正在networking/基础设施上勉强工作的程序员,我有一些问题:
我假设通过使用ELB,我只需要在ELB下设置一次HTTP,并在那里安装证书,而不是在实际的实例上?
对于SSL,在使用ELB时,我仍然需要为每个站点分配不同的IP地址,还是从ELB到实例通过HTTP进行通信?
将网站指向elb的最佳方式是什么? CNAMElogging到亚马逊ELB实例名称?
我应该使用负载均衡器,我在这里正确的轨道上?
对于这个问题,我完全接受任何其他build议/帮助。
感谢您的帮助。
你在正确的轨道上。
ELB可以是SSL终止代理。 在这种情况下,您在ELB上设置一次HTTPS,并在那里安装证书,而不是在实例上。
传统上,您需要使用Web服务器名称来匹配证书中的CN。 现在情况并非如此。 请参阅http://en.wikipedia.org/wiki/Secure_Sockets_Layer#Support_for_name-based_virtual_servers因此,不,您不需要,包括ELB终止的SSL,为每个站点分开的IP地址。
您可以configurationELB以终止SSL并向这些实例发送HTTP。
这是亚马逊的强烈build议,您的网站CNAME的ELB实例名称(或名称,多个AZ的ELBs返回每个AZ的名称)。 IP地址可以改变,特别是如果你ELB是非常E的,由于交通高峰。
如果ELB将是多可用区域,我还将考虑“用于Elastic Load Balancing的DNS故障转移”。
我强烈build议你阅读关于ELB的Amazon文档http://aws.amazon.com/elasticloadbalancing/ 。 所有这些问题都得到了答案 – 而且更多! – 在那里得到了答案,并有最佳做法。 这将比通过Serverfault问题获得零散的理解更好。 (当然,如果你想澄清文件,SF可能是提问的好地方。)
看来ELB只能处理一个证书。
如果您使用的是通配符证书,并且所有域都被通配符覆盖,或者您正在使用多域证书(也称为UCC证书),那么也可以使用该证书。
否则,如果您有多个域的多个证书,您的select是:
在这种情况下,每个证书都有自己的ELB。 ELB仍指向相同的实例。 您在ELB上安装证书,并处理SSL终止。
优点 :证书撤销/replace/更新时更容易。 还可以从pipe理SSL连接中释放实例。 从理论上讲,它也更加安全,因为ELB很可能不太容易受到潜在的安全漏洞影响。
缺点 :更贵(每个证书一个ELB,而不是一个ELB)。 自动缩放可能是不可预知的,一个自动缩放组与另一个ELB相关联,可能做出与自动缩放组不同的决定。
让ELB通过SSL请求而不是终止它。 您在每个实例上安装所需的所有证书,并将其设置为侦听端口443并处理安全连接。
优点:即使SSL处理的负载增加也可能稍微便宜些。 更多的控制你的实例正在发生的事情。
缺点:在撤销/更新/创build证书时更新证书非常耗时。 您必须将证书部署添加到您的部署过程。 如果您的实例从AMI启动并且证书存储在AMI上,则必须使用这些证书生成新的AMI,并使用无效证书终止实例。 如果只有几个实例,则使用rsync或scp在每个实例上手动replace证书是一个选项,但是非常丑陋。