如何使用自定义 SSL 正确 link Heroku、CloudFront、Route53?

How to properly link Heroku, CloudFront, Route53 with a custom SSL?

我正在尝试设置托管在 Heroku 上的 Web 应用程序。 DNS 路由通过 AWS Route53 完成,并通过 CloudFront 进行分发。我已经为 www.example.com.

购买了自己的 SSL 证书

一切正常,只是我希望能够使用子域,然后在 Heroku 中显示不同的应用程序。这也适用于本地。但是,如果我将 CloudFront 中的主机 headers 列入白名单以便执行此路由,Heroku 将重定向到未知应用程序。

AWS 说这是 Heroku 端的错误配置,Heroku 说我错误配置了 DNS 路由,需要将生成的 CNAME 应用到 Route53。但是 CNAME 路由到 CloudFront。

所以现在的设置是:

Heroku

Hosting Web App. Automatic Certificate Management is enabled. No domain added.

53 号公路

CNAME points to CloudFront dist. As well as A and AAAA. Also for * wildcard

CloudFront

Origin points to Heroku deployment. Has CNAMES for the custom domain URLs like *.example.com

我自己的带有 * 通配符支持的自定义 SSL 已上传到 AWS CM 并添加到 CloudFront。它有效,但我可以想象我在某些步骤中配置错误。

如果我发送一个主机 header,为什么我的 Heroku 部署会重定向到错误的应用程序?

在与 Heroku 沟通并链接此 post 之后。我很清楚,Heroku 和 Route56/CloudFront 有特殊关系,不需要将 Heroku 创建的 CNAME 引用添加到 AWS,并且可以忽略 Heroku 的验证。

运行 CLI 中的以下内容有效并且未收到主机 headers 并且 Heroku 端没有发生重定向。

heroku domains:add example.com -a heroku-app-name
heroku domains:add *.example.com -a heroku-app-name