【发布时间】:2019-04-24 06:03:27
【问题描述】:
如何为 Auto Scaling 组中的每个单独的 EC2 实例设置 HTTPS?
通常,组前面的负载均衡器会通过持有 SSL/TLS 证书来处理此问题,但在我的架构中没有负载均衡器;相反,客户端查询目录服务,该服务为他们提供实例的 IP 地址(实例通过 redis 服务器的 pub/sub 功能通知目录它们的存在)。因此,EC2 实例本身必须携带 SSL/TLS 证书。由于这是一个 Auto Scaling 组,因此实例可能随时弹出/不存在,因此无法手动分配证书。我知道 AWS 可以从它们的池中为每个实例分配一个默认的公共 IP 地址,以及一个通用的 DNS 名称,例如 ec2-203-0-113-25.compute-1.amazonaws.com,但它们没有附带证书。
那么,鉴于它们的默认 DNS 名称与随机名称一样好,我如何让这些实例拥有证书?我在想也许我可以以某种方式将它们设置在自定义父域下,并让每个实例随意声明一个唯一的子域,从而允许他们使用覆盖父域的通配符证书,但我不太确定那是怎么回事完成。
【问题讨论】:
-
您为什么不在 AutoScaling 组中使用 ELB?这会为您处理所有事情,包括将请求定向到实例,并显着简化您的流程;您甚至可能不需要查询该目录服务和/或 Redis,因为 ELB 将是静态的,并且请求可以直接到达那里 - ELB 实际上可以为您节省 $。
-
如果您继续使用当前架构,则需要获取自己的证书并确保每次使用 ASG 启动新实例时都已安装它,然后您将 b) 需要设置一个内部 DNS 并在每次新实例启动并声明一个新域时更新该 DNS 以指向特定实例,c)您需要更新目录中的“指针”和指向旧的和新的 Redis , 域,以便在查询时正确解析。
标签: amazon-web-services amazon-ec2 https ssl-certificate