Heroku SSL使用AWS Route 53和Cloudfrontredirect到www.example.com

现在的情况

example.com == examplecom等,因为垃圾邮件

我在GoDaddy上有一个Domain examplecom和一个SSL证书。 exampleherokuappcom上的真实应用程序托pipe在Heroku上。 我也通过这个指南在Heroku上传了SSL证书: Heroku SSL 。

我想这个url总是追加www. 你永远不会访问“裸”域。

我使用带有以下logging的AWS Route 53

  • [A]从examplecom到examples3bucket (s3bucket只是一个redirect到wwwexamplecom)
  • [CNAME]wwwexamplecomwwwexamplecomherokudnscom

问题

如果我访问http://example.com : http://www.example.comhttps://www.example.com一切正常(我总是redirect到https://www.example.com )。 但是,如果我打开https://example.com你不会redirect这是一个已知的问题与s3buckets和路由53,因为它不能处理HTTPS(这就是我读的):

S3不允许你configuration一个SSL证书,所以你不能轻易使用Route 53在HTTPS中redirect你的根域。 如果您需要这样做,请考虑使用提供CNAME / ALIASlogging根域的DNS提供程序。 有关更多信息,请参阅自定义域开发人员中心文章或此博客文章 ,其中显示了如何设置SSL裸域redirect。 资料来源:devcenter.heroku.com/articles/route-53(抱歉,我不允许发布超过2个链接)

我的方法

上面的Blogpost实际上是非常有帮助的。 所以我设置了Cloudfront但是它不适合我,因为我不知道我应该用什么来作为Heroku的SSL SSL Endpoint ,因为我没有(我使用免费的Heroku SSL)。 如果我键入heroku certs -a example我得到:

名称| 通用名称 过期| 值得信赖| types

namedid-12345 | wwwexamplecom,examplecom | 2018-02-22 06:35 UTC | True | SNI

但没有“真正的”端点。 可能是www.example.com.heorkudns.com我的端点?

在路线53我有一个

  • [A]example.comlogging到<id-of-cloudfront>.cloudfront.net
  • 我还需要一个CNAME吗?

更新0

经过几天的研究,我找不到用Cloudfront和Route53做的方法。 因此,我切换到DNsimple 。 他们为Heroku SSL提供简单的一键式function。 我花了大约5分钟

  • 创build一个帐户
  • 存入信用卡
  • 更改我的域的名称服务器指向DNsimple而不是路由53
  • 复制我的MXlogging(不要忘记他们)
  • 设置Heroku SSL

之后,花了大约2个小时(可能需要长达24小时),直到一切正常。

现在所有的域名都被redirect到https://www.example.com

这个解决scheme唯一“坏”的地方是,它的成本至less为每月5欧元,而云前线和53号线则更便宜。