You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Heroku ACM迁移至AWS Certificate Manager并跳过域名验证?

问题描述

我需要将一批由Heroku管理的域名迁移至AWS,核心需求是在AWS Certificate Manager(ACM)中完成域名验证以获取有效证书,这样才能将这些域名用于API Gateway或ELB等AWS服务。

Heroku的ACM验证逻辑较为简单:只要自定义域名的DNS设置了指向Heroku应用主域名的CNAME记录,即可自动验证并颁发Let's Encrypt证书。例如将example.com的CNAME指向my-heroku-app.com,就能正常使用HTTPS,通过curl -Iv https://example.com可验证证书由Let's Encrypt颁发。

但AWS ACM要求必须为域名设置它指定的CNAME记录及对应值才能生成证书。目前主Heroku应用域名即将通过API Gateway指向AWS,未在AWS ACM注册的自定义域名届时会失效,我想知道是否存在无需逐个执行常规验证流程,就能将这些域名的证书从Heroku迁移至AWS ACM的方法?

可行方案

目前没有直接迁移Heroku证书到AWS ACM的官方途径,但可以通过以下方式减少手动操作的工作量:

1. 批量导入现有Let's Encrypt证书

Heroku使用的是Let's Encrypt证书,你可以从Heroku导出证书文件后批量导入到AWS ACM:

  • 通过Heroku CLI导出证书:heroku certs:download -a your-app-name,执行后会得到server.crt(证书文件)和server.key(私钥文件)
  • 整理证书链为AWS ACM要求的格式(需包含Let's Encrypt的中间证书)
  • 使用AWS CLI的aws acm import-certificate命令配合脚本,实现批量导入操作

注意:导入的证书有效期与原证书一致,到期后仍需通过AWS ACM的常规流程续期。

2. 自动化DNS验证流程

若不想导入旧证书,而是直接在AWS ACM生成新证书,可通过脚本自动化DNS验证步骤:

  • 用AWS CLI调用aws acm request-certificate发起证书请求,获取所需的CNAME验证记录
  • 结合你的DNS服务商API(如Route 53或第三方DNS的开放API),批量添加这些CNAME验证记录
  • 等待AWS ACM自动完成验证后,再批量删除临时的验证CNAME记录

如果域名托管在Route 53,流程会更简便——AWS ACM可自动添加验证记录(需为ACM配置对应的IAM权限)。

3. 利用证书透明度日志缩短验证等待时间

如果域名已有Let's Encrypt颁发的有效证书,AWS ACM可通过证书透明度日志加快验证速度,但这只是缩短等待时长,并非跳过验证,前提仍是你拥有域名的DNS控制权。

关键注意事项
  • 无论采用哪种方法,都必须确保你拥有域名的DNS控制权,这是完成验证的核心前提
  • 导入或生成新证书后,需及时更新API Gateway/ELB的证书配置,替换原Heroku相关设置
  • 批量操作前先用一个测试域名验证流程,避免批量出错

内容的提问来源于stack exchange,提问作者Neil C. Obremski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:35:25