在多域上使用 SSL,自动扩展 Elastic Beanstalk 设置

Pat*_*han 8 ssl multi-tenancy autoscaling elastic-beanstalk lets-encrypt

我们正在为我们的公司创建一个内容管理系统。重要的是,此 CMS 支持动态数量的服务器上的动态域名。经过数小时的研究,我们认为 Amazon 的 Elastic Beanstalk 是最佳选择。我们还需要的一件事是能够为与我们的系统关联的域动态启用 SSL。

因此,在我们的系统中,我们可以创建一个与域相关联的“站点”。创建站点时,我们还应该能够选择是否通过 SSL/TLS 托管域。我们计划对系统进行白标,并预计将有大量域与其关联。

我一直在探索能够在服务器(或负载平衡器)上设置 SSL 并能够动态更改哪些域受到保护的不同可能性。这是我所在的位置:

  • 使用亚马逊的证书管理器:这将是最理想的方式。它与 AWS 集成并且非常易于使用。但是,它有几个使人衰弱的限制: 1. 每次请求新证书时,您都必须通过电子邮件验证每个域。没什么大不了的 2. 它不能将证书应用于 EC2 实例,只有负载均衡器和负载均衡器只能分配一个证书。这意味着每当您想要保护另一个域时,您都必须重新验证每个域。不好。
  • 在负载均衡器上使用 Let's Encrypt:这将是保护我们网站的下一个最佳方式(我可以看到)。每当需要保护新站点时,我们都会为所有需要 SSL 的域请求新证书。创建证书后,我们将其推送到 IAM 并告诉 EBS 将负载均衡器与新证书相关联。我看到的唯一问题是LetsEncrypt 将他们的证书限制为 100 个域,非免费但相对便宜的 SSL 提供商 SSLMate 也是如此。现在可能工作,但它不能扩展。是否有自动 SSL 提供程序对证书上的域数量没有限制?
  • 使用 Passthrough SSL:Amazon 的 Elastic Beanstalk 允许您以这样的方式设置它,以便负载均衡器将加密的流量直接传递到 EC2 实例。然后您可以允许 EC2 实例处理证书。然后我可以利用 LetsEncrypt 并为每个域分配一个单独的证书。我在考虑自动缩放时遇到了一个问题:我们需要跨实例复制证书。我的解决方案是将证书存储在安全的 S3 存储桶中,然后在所有 EC2 实例上运行一个 cron 以提取新的/更新的证书。

最后一个想法有什么问题吗?我正在尝试做的事情有更好的解决方案吗?我错过了什么吗?在意?或者也许是我问题的超级简单解决方案?

请注意,我使用的是 docker,所以我可以在服务器上设置任何我需要的东西。

小智 0

Elastic Load Balancer 现在最多可以有 26 个证书(如此处所示

如果每个 ELB 需要超过 26 个证书并且想要使用 AWS 服务,则可以对每个证书/域使用 CloudFront 分配。

您还可以在CertificateManager 中使用基于CNAME 的DNS 验证,以便自动续订证书,而无需电子邮件验证。