我有一个前端角度应用程序,在aws ecs ec2的nginx docker容器中运行。这是saas产品,其他第三方域名将指向此前端docker容器。我已经为该目标组设置了默认规则,但是我想知道如何为每个域设置ssl。 ALB当前仅支持100条侦听器规则,即每个侦听器实际上只有50条规则(考虑到80和443)
后端api已填充了30条规则。
如果我有150个域需要指向此前端,如何设置ssl?如果我在nginx的端口80虚拟主机中设置了301重定向,例如
return 301 https://$host$request_uri
该请求将再次传递到应用程序负载平衡器端口443,它将占用默认ssl并可能导致ssl错误。有没有机会使nginx https重定向而又不返回应用程序负载平衡器的端口443?或其他任何方法?我认为多域ssl证书是一种选择,因此可以使其成为负载均衡器上的默认ssl。
答案 0 :(得分:0)
您是否可以访问所有这些域的SSL证书?如果是,则可以在nginx容器中对其进行配置。使用网络负载平衡器而不是ALB,并在端口443上添加一个TCP侦听器,该侦听器将不终止SSL,并将流量重定向到将终止证书的nginx容器。
您还可以动态地重新加载nginx配置以动态设置证书。
答案 1 :(得分:0)
AWS负载平衡器现在支持SSL重定向,因此您不必在容器上进行此操作。
此外,您的443侦听器可以添加多个证书。因此,只需将所有证书添加到负载均衡器上的443侦听器即可。
然后在您的443个侦听器规则中,只有一条规则即可:
现在,您所有的http请求都将通过重定向回HTTPS的方式发送回用户,而无需访问您的容器或nginx。当它们以HTTPS形式返回时,AWS ALB在那里拥有所有证书。
如果遇到负载平衡器的限制,则可能必须将它们“分成” 2个或3个ALB,但是我发现这更易于管理,尤其是在证书更改时间到来时。