【问题标题】:How to use AWS ACM properly?如何正确使用 AWS ACM?
【发布时间】:2025-12-24 08:50:12
【问题描述】:

我们在 us-west-2 中拥有基础设施设置所需的一切。我们在 us-east-1 中有一个 ssl 证书设置。 API 网关要求在该区域内。

在 us-west-2 中,我们使用 API Gateway 中的证书就好了。我们也想在我们的 ELB 上使用它。但是 ELB 要求 ACM 证书在同一区域。

证书是 *.domain.com,因此它适用于我们所有的子域。将证书与 API Gateway 和 ELB 一起使用的正确方法是什么?

【问题讨论】:

    标签: amazon-web-services amazon-elb amazon-acm


    【解决方案1】:

    这是我遇到过很多次的场景。带有 ACM 的 API 网关实际上在幕后创建了 CloudFront 分发(请参阅Set up Custom Domain Name for API Host Name)。 CloudFront 用完了位于 us-east-1 区域的 AWS Global。

    这里的限制是ELB requires the certificate to be in the same region as the ELB

    好消息是您可以在 us-west-2 中创建第二个通配符证书并在 ELB 中使用它,因为 ACM 不关心证书之间的重复域。

    如果您绝对需要 ELB 和 API 网关使用相同的证书,我知道的唯一选择是将您的基础架构移动到 us-east-1。在我看来,拥有两个证书似乎是更好的选择。

    【讨论】:

    • “跨区域重复证书”。这会生成相同的证书还是创建不同的证书?由于用一个公钥完成的加密不能用不同的私钥解密,即使它们属于同一个域。
    • 每个证书都在特定的上下文中使用,并且在握手期间共享公钥。并不是有人会拿 ELB 的公钥,转到 API Gateway,然后尝试从中解密数据。但是所有证书都是为同一个域签名的。
    • 也就是说,如果客户正在固定证书,那么@Kannaiyan 是对的,您将需要一个证书,但这是我的最后一点,如果您绝对需要他们使用单个证书,那么 us-east-1 是您目前唯一的选择。
    • 将 HPKP 与 ACM 颁发的证书一起使用在任何情况下都是错误的,因为您无法控制私钥。