首页 > 解决方案 > 如何使用一个 SSL 证书来保护多个动态 EC2 实例?

问题描述

我正在使用部署在 AWS EC2 上的应用程序。一个头实例 www.me.com 提供登录和管理,以便用户可以生成应用程序的实例。启动一个新的 AWS EC2 实例来运行该应用程序,然后用户的浏览器被重定向到该实例(以长 URL 结尾 amazonaws.com),并且该应用程序在用户关闭它之前可用(然后 EC2 实例停止)。

我们现在希望移动应用程序以使用 SSL。我们可以从某个 CA 获得证书,并将其绑定到 *.me.com。问题是,我们如何使用相同的证书来保护应用程序实例?

一个想法是使用弹性 IP - 我们保留 N 个 IP,并将 N 个子域(foo1.me.com、foo2、...)绑定到这些 IP。然后我们启动与其中一个关联的每个应用程序实例,并将用户引导到关联的子域。证书有效,一切正常。我认为这行得通?

麻烦的是,应用程序应该扩展到 1000 个同时用户,但很可能大部分时间都花在零用户附近,所以我们会为保留未使用的 IP 付出巨大的惩罚成本,此外,我们可能会超过 N 并且有拒绝访问。

也许更简单的方法是使用“a.me.com”或“www.me.com/a”中的任何一个来提供对通过头服务器 www.me.com 路由的应用程序的访问。我认为前者是行不通的,因为它需要更新 DNS 记录才能对用户有用,而这种情况发生得不够快,无法即时提供给用户。后者可能会起作用,但我对网络基础设施的了解还不够,无法想象如何对其进行工程设计。即使我们只服务于 80 端口,实际上我们也在其他端口上提供服务。所以我们需要类似的东西:

www.me.com/a:80 <--> foo.amazonaws.com:80
www.me.com/a:8001 <--> foo.amazonaws.com:8001
www.me.com/a:8002 <--> foo.amazonaws.com:8002
...

在我看来,有两种选择,一种是处理所有流量的头服务器(在 me.com 下,因此在证书下)并以某种方式将其移交给应用程序实例,或者某种允许用户直接连接到的方法应用程序实例,但我们可以使用一个(或少量)证书合理地管理保护这些连接。

谁能建议这样做的一种方法是什么?我假设它不是 Route 53,因为 - 再次 - 这是一个 DNS 问题,具有 DNS 延迟。除非我理解错了。

谢谢。

标签: amazon-web-servicessslamazon-ec2

解决方案


推荐阅读