如何为从 Google Domains 到 Heroku 的裸域设置 SSL?

Posted

技术标签:

【中文标题】如何为从 Google Domains 到 Heroku 的裸域设置 SSL?【英文标题】:How to set up SSL for naked domain from Google Domains to Heroku? 【发布时间】:2017-08-29 01:26:45 【问题描述】:

我正在尝试使用 Heroku's Automatic Certificate Management 为我的网站设置 SSL。我的应用程序位于 myapp.herokuapp.com 的 heroku 上,我目前已设置 Subdomain Forwarding 以便 http://www.myapp.com 正确显示我的应用程序。

我想要的是将我的网站托管在https://myapp.com

我跑了heroku certs:auto:enable,但它显示:

=== Automatic Certificate Management is enabled on myapp

Domain             Status
─────────────────  ───────────
www.myapp.com      Failing

运行heroku domains 显示:

=== myapp Heroku Domain
myapp.herokuapp.com

=== myapp Custom Domains
Domain Name        DNS Target
─────────────────  ───────────────────────────────
www.myapp.com      www.myapp.com.herokudns.com

现在,在 Google Domains 中,我有一个从 @.myapp.comhttp://www.myapp.com 的子域转发。我还有一个自定义资源记录,名称为www,类型为CNAME,数据为myapp.herokuapp.com.

我需要对我的设置进行哪些更改才能在https://myapp.com 托管我的网站?

【问题讨论】:

如果您找到解决此问题的方法,请在此处发布。几个月来我一直在寻找这个答案。据我所知,目前这似乎是不可能的。至少在 Google 域中。 @trentjones21 可以。还没有运气 很想知道 您的网站是否设置为https://myapp.com 您是说您希望浏览器位置以https://myapp.com 结尾,还是将https://myapp.com 重定向到https://www.myapp.com 就足够了(就像您使用非ssl端)?我只是设法使该选项起作用。可能是 Google Domains 刚刚开始支持这一点。如果这是一个有效的解决方案,我会写更多的细节作为答案。 【参考方案1】:

我反复遇到 Heroku 和其他 PaaS 提供商的相同问题:取决于谁为您的域提供和管理 DNS,您可能会也可能无法在裸域上使用 CNAME 或 ALIAS 记录。这就是为什么我们创建了一个简单的服务来解决这个问题,通过应用从裸域到 SSL 下的“www”的简单 SSL 重定向,而不更改您的 DNS 管理提供商:NakedSSL 将为您提供一个 IP,并将创建和托管一个 SSL您的裸域 (https://yourdomain.com) 的证书,将其重定向到您想要的 HTTPS URL(很可能是“https://www.yourdomain.com”)。

免责声明:我显然是创建 NakedSSL 的团队的一员。我希望您不要将其视为自我推销(无论如何,我们为 1 个域免费提供它,这完全符合 95% 的开发人员/爱好者的需求),而是作为处理这种烦人情况的一种方式一个简单的方法。

【讨论】:

【参考方案2】:

很遗憾,Google Domains 不支持 ANAME 或 ALIAS 记录。您必须将其中之一用于您的***域。以下是 Google Domains 支持的完整列表。

https://support.google.com/domains/answer/3290350

Heroku 在此处提供了支持 ALIAS 或 ANAME 记录的 DNS 提供商列表:https://devcenter.heroku.com/articles/custom-domains#add-a-custom-root-domain 就我个人而言,我使用 DNSimple 并取得了巨大的成功。

【讨论】:

很遗憾,是的。您可以使用“www”,但 Google 不会为您的***域提供 ALIAS 或 ANAME 记录。 你还会推荐 DNSimple 吗?【参考方案3】:

CNAME 目标必须是 www.myapp.com.herokudns.com。在您上面的问题中,您的 DNS 中只有myapp.com.herokudns.com 中的顶点记录。如果不是这种情况,您可以共享域以便我可以dig 记录以获取更多信息吗?

【讨论】:

我不得不承认我读错了标题:没有意识到你正在设置一个裸域。 Heroku 对 DNS A-Records 的限制有一个非常好的write-up。

以上是关于如何为从 Google Domains 到 Heroku 的裸域设置 SSL?的主要内容,如果未能解决你的问题,请参考以下文章

将域名转移到 Google Domains

如何为项目使用不同版本的 google-play-services 库

您如何为 Google Cloud 平台签署 HIPAA BAA?

Google Map API 如何为当前位置设置标记

如何为 Google App Signing 生成上传密钥?

如何为 Google AdWords API 的广告组增加/减少移动出价标准?