VPC 中多个 ELB 上的通配符 SSL 证书

qre*_*0ct 2 ssl https ssl-certificate amazon-elb amazon-vpc

我对安装证书和 AWS 本身非常陌生。现在,在我当前的基础架构中,我有 3 个位于 VPC 中的 ELB。

我已经通过 Big Rock 从 COMODO 购买了通配符 ssl 证书。

我想要的是我的 ELB 和外部世界之间的所有通信都应该通过 HTTPS。

  1. 我怎样才能做到这一点?
  2. 我可以在所有三个 ELB 上安装一个通配符证书吗?
  3. 有没有更好的方法呢?
  4. 此外,由于它是我拥有的通配符证书,因此我无法将它用于 api.example.com 但不能用于 example.com 本身(根据我的理解)。但是,目前对外部世界可见的是example.com(而不是真正的api.example.com)那么我是否需要为上述场景购买另一个证书?
  5. 考虑到我还有 example.in 作为域以及托管同一站点的域,我应该使用哪种类型的证书(我在这里阅读了UCC SSL 证书)。

请原谅我对此事的无知。

HBr*_*ijn 5

我想要的是我的 ELB 和外部世界之间的所有通信都应该通过 HTTPS。我怎样才能做到这一点?

完全禁用纯 HTTP 通常不是选项,但可以将您的网络服务器配置为(永久)将任何未加密的请求重定向http://...https://...

我可以在所有三个 ELB 上安装一个通配符证书吗?

没有技术原因你不能。

此外,由于它是我拥有的通配符证书,因此我不能将它用于api.example.com但不能用于example.com它本身(根据我的理解)。
但是,目前对外部世界可见的是example.com(并非真的api.example.com)那么我是否需要为上述场景购买另一个证书?

是的,通配符*.example.com仅适用<valid_hostnames>.example.com 于普通/裸体,example.com也不适用于普通/裸体也*.*.example.com不起作用。有关详细信息,请参阅此问答

从技术上讲,还可以通过主题备用名称扩展包含通配符证书的普通域,使证书对两者都有效*.example.com example.com 但我不知道哪些 SSL 经销商会自动执行此操作。因此,您可能根本不需要另一个(替换)证书。

您可以检查openssl x509 -in certificate.crt -text -nooutwhich 将产生类似于出现 SubjectAltNames 时的结果:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
           ....
        Subject: ..., CN=*.example.com
           ...
        X509v3 extensions:
           ...
           X509v3 Subject Alternative Name:
                DNS:*.example.com, DNS:example.com
Run Code Online (Sandbox Code Playgroud)

如果不是这种情况,除了您当前的通配符之外,您可能需要另一个证书才能使用裸域。服务器名称指示(SNI) 是使用两个不同的 SSL 证书并使它们在单个 ELB 实例上正常工作所必需的。

不幸的是,如 Elastic Load Balancing 产品文档中关于 HTTPS 的所述:

Elastic Load Balancing在您的负载均衡器上不支持服务器名称指示(SNI)。

所以一个 ELB 上的两个证书是不行的。

我应该使用哪种类型的证书(我在这里阅读了 UCC SSL 证书),因为我也有example.in一个域以及托管同一站点的域。

ELB 产品文档给出了两种策略:

  • 为每个附加域(有时称为统一通信证书 (UCC) 而不是 SAN 证书)购买带有主题备用名称 (SAN) 的单个多域证书,并在 ELB 上使用该证书。

  • 将端口 443 上的 TCP 侦听器用于前端和后端连接。负载均衡器传递请求,您使用支持 SNI 的网络服务器处理来自 EC2 实例的 HTTPS 终止。

  • *从技术上讲,还可以通过主题备用名称扩展名将普通域包含在证书中* - 有趣的是,FWIW,我昨天才购买了一个 comodo 通配符证书,在我的 CSR 中,我包含了 `*.example.com` 作为主题,并没有明确要求 SAN。证书是与所指示的主题一起颁发的,并且在 SAN 中带有通配符和裸域,因此我希望 OP 的证书在默认情况下也能以这种方式工作,并支持裸域。 (2认同)
  • @Michael-sqlbot 谢谢!我用您建议的检查 SAN 条目的方法更新了我的答案。 (2认同)