如何为单个Elastic Beanstalk应用添加第二个解析域名实现迁移过渡
最优适配方案:ALB监听器绑定多证书(SNI支持)
这是当前场景下成本最低、改动最小、无额外依赖的方案,完全满足新旧域名并行使用的需求:
- 步骤1:在AWS Certificate Manager(ACM)的
eu-west-1区域(和你EB环境同区域),申请*.bar.com的公共免费证书,通过Route53一键完成域名验证,等待证书签发。 - 步骤2:进入EC2控制台的「负载均衡」列表,找到你EB环境关联的应用负载均衡器(ALB),进入该ALB的443端口HTTPS监听器配置页。
- 步骤3:选择「添加证书」,将刚签发的
*.bar.com证书绑定到该监听器,原有*.foo.com证书保留无需修改。ALB原生支持SNI,会自动根据用户访问的域名匹配对应的SSL证书,不会再出现证书不匹配的问题。 - 步骤4:在Route53中为
hello.bar.com配置Alias记录,指向EB的访问地址hello.eu-west-1.elasticbeanstalk.com即可。
后续旧域名下线时,仅需要进入监听器配置删除*.foo.com证书、删除Route53中旧域名的解析记录即可,全程对新域名的业务无影响。
备选可行方案:申请多域名(SAN)SSL证书
如果你的客户端存在不支持SNI的老旧设备,可以选择该方案:
- 步骤1:在同区域ACM申请包含所有需要使用域名的公共证书,可填写
hello.foo.com、*.foo.com、hello.bar.com、*.bar.com,ACM免费支持最多100个主题备用名称。 - 步骤2:完成两个域名的验证后,将ALB 443监听器的原有证书替换为该多域名证书即可,后续旧域名下线时重新申请仅包含新域名的证书替换即可。
原有两个方案的适用场景说明
- 克隆EB环境的方案:不推荐,需要双倍的基础设施成本,还要维护两套环境的代码、配置同步,额外增加运维复杂度,完全没有必要。
- 前置CloudFront的方案:不推荐,你的业务是无缓存需求的鉴权API,新增CloudFront层会额外增加请求延迟,还要额外配置全量转发请求头、关闭缓存等规则,容易出现鉴权相关的业务异常。
内容的提问来源于stack exchange,提问作者JHH
相关产品推荐
相关产品推荐

