Auto Scaling组中每个EC2实例的HTTPS

时间:2019-04-24 06:03:27

标签: amazon-web-services amazon-ec2 https ssl-certificate

如何为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名称与随机域名一样好,我如何使这些实例具有证书?我在想,也许我可以以某种方式在自定义父域下进行设置,并让每个实例随意声明一个唯一的子域,从而允许他们使用覆盖父域的通配符证书,但是我不确定这是怎么回事。完成。

2 个答案:

答案 0 :(得分:1)

您不能在EC2实例上使用Amazon ACM证书。您必须提供自己的证书。例如对* .example.com有效的通配符证书。然后,将子域分配给Route53中的实例,并将其保存在Redis数据库中。

我不建议使用自定义的机器映像,从长远来看,这将导致巨大的维护开销。

在启动时使用启动脚本或更专业的Opsworks来设置计算机,您可以利用厨师或木偶的力量来设置和运行服务。 https://aws.amazon.com/opsworks/

编辑,阐明route53的用法

在实例注册例程中 或者在配置或部署事件记录中使用opsworks时,您可以利用AWS Route53 API创建一个子域,例如实例名称。据我所知,子域的数量不受限制。

有关opsworks事件https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook-events.html

的更多详细信息

有关Route53 https://docs.aws.amazon.com/Route53/latest/APIReference/Welcome.html

的更多详细信息

答案 1 :(得分:0)

  1. 您需要为启动配置创建自定义AMI。
  2. 必须配置SSL证书。
  3. 只要您的实例启动,它将带有SSL。
  4. 以及要运行哪个应用程序,都必须编写重写规则。 例如将Nginx从http重定向到https。
server {
           listen         80;
           server_name    www.example.org;
           rewrite        ^ https://$server_name$request_uri? permanent;
        }

        server {
           listen         1443;
           server_name    www.example.org;
       }