我正在尝试建立一个在Heroku上托管的Web应用程序。 DNS路由通过AWS Route53完成,并通过CloudFront进行分发。我已经为例如www.example.com购买了自己的SSL证书。
一切正常,除了我希望能够使用子域,然后在Heroku中显示其他应用。这也可以在本地使用。但是,如果我将CloudFront中的主机标头列入白名单以便执行此路由,则Heroku将重定向到未知应用程序。
AWS说这是Heroku端的错误配置,Heroku指出我配置了DNS路由,需要将生成的CNAME应用于Route53。但是该CNAME路由到CloudFront。
所以现在的设置是:
托管Web应用。自动证书管理已启用。未添加域。
CNAME指向CloudFront dist。以及A和AAAA。也用于*通配符
原始指向Heroku部署。具有用于自定义域网址的CNAMES,例如* .example.com
我自己的具有*通配符支持的自定义SSL已上传到AWS CM并添加到CloudFront。它可以工作,但是我可以想象我在某些步骤上配置了错误。
如果发送我的Heroku部署的主机标头重定向到错误的应用程序,怎么办?
与Heroku进行沟通并链接此帖子之后。对我来说很清楚,Heroku和Route56 / CloudFront具有特殊的关系,不需要将由Heroku创建的CNAME引用添加到AWS,并且可以忽略Heroku的验证。
在CLI中运行以下命令有效,并且未收到主机头,并且在Heroku侧未发生任何重定向。
heroku domains:add example.com -a heroku-app-name
heroku domains:add *.example.com -a heroku-app-name