CloudFront使用备用域名api.example.io出现502故障及证书配置咨询
问题解答 & 配置步骤
先直接回应你的核心疑问,再一步步梳理正确的配置流程:
1. 要不要为api.example.io重新申请ACM证书?
不需要重新申请新证书——但要注意证书的AWS区域!
你已有的覆盖example.io和*.example.io的证书,完全包含api.example.io这个子域名。不过CloudFront有个硬性规则:用于CloudFront的ACM证书必须是在us-east-1(弗吉尼亚北部)区域申请的,不管你的ALB或其他资源部署在哪个AWS区域。
- 如果你的现有证书就是在
us-east-1申请的:直接在CloudFront分发配置里选中它即可,无需额外操作。 - 如果你的现有证书在其他区域:需要在
us-east-1重新申请一份完全相同的证书(覆盖example.io和*.example.io)。好在你的域名托管在Route53,验证流程会自动完成,不用手动操作。
2. 为什么直接把api.example.io指向ALB会黑屏?怎么解决?
你踩了一个常见误区:既然要通过CloudFront提供api.example.io的服务,Route53的记录应该指向CloudFront分发,而非直接指向ALB。直接指向ALB黑屏的原因通常有两个:
- 你的ALB安全组可能配置了仅允许CloudFront的IP段访问(这是最佳实践,防止绕开CloudFront直接访问ALB),所以直接访问ALB会被拒绝,返回空白页面。
- 你的ALB绑定的SSL证书可能未覆盖
api.example.io,导致浏览器证书验证失败,显示黑屏或证书错误。
正确配置步骤:
更新CloudFront分发配置:
- 打开CloudFront控制台,找到你指向ALB的目标分发。
- 进入「分发设置」→「常规」标签,点击「编辑」。
- 在「备用域名(CNAMEs)」中添加
api.example.io。 - 在「SSL证书」下拉框中选择符合要求的ACM证书(必须是
us-east-1区域,且覆盖api.example.io)。 - 切换到「缓存行为」标签,确认「查看器协议策略」设置为
Redirect HTTP to HTTPS或HTTPS Only,源地址指向你的ALB。 - 保存配置,等待CloudFront部署完成(通常需10-15分钟,控制台会显示「部署中」状态)。
配置Route53记录:
- 打开Route53控制台,进入你的域名托管区。
- 点击「创建记录」:
- A记录:类型选
A - IPv4地址,开启「别名」,目标类型选「CloudFront分发」,选择你的CloudFront分发域名。 - AAAA记录:类型选
AAAA - IPv6地址,同样开启「别名」,目标选同一个CloudFront分发。
- A记录:类型选
- 保存记录,等待DNS生效(通常5-30分钟,可通过
nslookup api.example.io验证)。
验证访问:
等CloudFront部署和DNS生效后,访问api.example.io,即可正常通过CloudFront访问到你的ALB服务。
内容的提问来源于stack exchange,提问作者cguy
相关产品推荐
相关产品推荐

