Heroku自定义域名SSL证书异常求助:证书指向*.herokuapp.com
这种情况我在帮团队排查Heroku部署问题时碰到过好几次,大概率是自动证书管理(ACM)的流程出现了小故障,或者域名DNS配置的细微变动导致证书验证环节没走通。下面是一步步的排查和修复步骤,亲测有效:
先确认DNS配置是否正确
Heroku ACM要求自定义域名的DNS记录必须正确指向你的Heroku应用域名。如果是子域名(比如www.yourdomain.com),需要设置CNAME记录指向yourappname.herokuapp.com;如果是根域名(yourdomain.com),得用ALIAS或ANAME记录(因为根域名不支持CNAME)。
你可以用命令行验证:dig your-custom-domain.com CNAME(根域名的话换成对应ALIAS的查询命令),确保返回的目标是你的Heroku应用域名,没有指向错误。手动重置自定义域名触发证书重生成
如果DNS没问题,那大概率是ACM的证书申请流程卡住了。可以通过移除再重新添加域名来强制触发新的证书申请:- 移除域名:
heroku domains:remove your-custom-domain.com - 等待2-3分钟(给Heroku后台同步的时间),再重新添加:
heroku domains:add your-custom-domain.com - 之后Heroku会重新启动证书的申请和验证流程,一般15-30分钟内就能完成,之后证书就会绑定到你的自定义域名了。
- 移除域名:
检查ACM的状态日志
用命令heroku certs:auto查看当前自动证书的状态,里面会显示证书关联的域名、有效期,以及是否存在验证失败的提示。如果有明确的错误信息(比如域名所有权验证超时),跟着提示去修复对应的问题即可。清除本地/CDN缓存
有时候你看到的旧证书是因为本地浏览器缓存或者CDN的缓存没更新。可以用curl -v https://your-custom-domain.com查看返回的证书详情,确认是否已经更新到自定义域名的证书。如果本地还是显示旧的,试试用浏览器的隐私模式访问,或者强制刷新缓存(Ctrl+Shift+R)。
如果以上步骤都试过还是没解决,可能是Heroku后台的临时服务异常,可以等半小时再重试,或者联系Heroku支持团队,提供你的应用名称和自定义域名,他们能帮你查看后台的证书申请日志,定位具体问题。
内容的提问来源于stack exchange,提问作者Slimez

