我一直在使用 Heroku 托管我的应用程序 (www.justbooked.com),godaddy 是存储域的地方。出于某种原因,最近非 www 版本例如justbooked.com 不再有效。
GoDaddy 似乎没有为根级域 (example.com) 提供 ANAME/ALIAS 或其他 CNAME 样式的功能。
我想知道如何让 justbooked.com 像 www.justbooked.com 一样工作。 Godaddy 是否可以通过任何其他方式做到这一点?请记住,我有 SSL 证书等......
如果 GoDaddy 无法做到这一点,那么使用 PointDNS 之类的东西可能会奏效,但我仍然不确定如何使用我现有的 SSL 证书配置 PointDNS。
这里的任何帮助都会很棒,目标是让 justbooked.com(非 www)正常工作!!!
谢谢!
我猜你的问题现在可能已经解决了,但为了帮助过去像你我这样的人(4 周前我遇到同样的问题时发现了这个主题),我正在写一个步骤 -有关如何让 PointDNS 在 HTTPS 上为 www 和非 www 域工作的分步教程。 在开始之前阅读所有步骤,包括注释。
- 通过 Heroku 的 UI 或使用 CLI 命令在您的项目中为 PointDNS 创建一个附加组件:
heroku addons:create pointdns:developer
- 打开 Heroku 的用户界面并进入 PointDNS 仪表板。查找“名称服务器”选项卡并查看名称服务器列表。寻找最适合您的。
- 复制推荐数量的名称服务器(不多也不少),转到您购买域名的地方(在您的例子中是 GoDaddy)并编辑 DNS 服务器以指向 PointDNS。等待至少 2 小时以使这些更改生效。
- 通过 Heroku 的 UI 或使用 CLI 命令将您的 www 和非 www 域添加到 Heroku 自定义域列表:
heroku domains:add justbooked.com
和heroku 域名:添加 www.justbooked.com
- 复制每个域出现的两个 DNS 目标(以
.herokudns.com
结尾的那个)。您可以通过 Heroku 的 UI 或使用 CLI 命令检查 DNS 目标:heroku domains
- 转到 PointDNS 仪表板并为根域(非 www)添加别名记录,为 www 域添加 CNAME 记录;在每一个上,添加您在上一步中复制的相应 DNS 目标。也许这两个域的记录是在您添加 PointDNS 附加组件时自动创建的;在这种情况下,只需编辑 DNS 目标即可。
- 再等待 1 小时,然后 Heroku 将使用 ACM(自动证书管理)自动为您设置 SSL 证书。如果一切顺利,您现在应该让两个域都使用 HTTPS 协议(protocol)。
注意事项:
- 如果您有超过 1 个 Heroku 应用程序使用相同的 git 代码库,则需要在 Heroku CLI 命令中使用
--app
标志。
- 您说您拥有现有的 SSL 证书。如果您想使用它而不是 ACM 提供的那个,您需要设置一个 SSL 端点。为此,在第 4 步之前,使用 CLI 命令创建一个:
heroku addons:create ssl:endpoint
。之后,使用以下命令上传您的证书:heroku certs:add server.crt server.key --type endpoint
。 在第 5 步中,使用 heroku certs
而不是 heroku domains
命令。 在第 6 步中使用端点 DNS 目标(以 .ssl.herokudns.com
结尾的目标)。
- 设置域和 SSL 证书后,您可能还想将所有 HTTP 流量重定向到 HTTPS。您只能通过将重定向逻辑编码到您的应用程序中来做到这一点。对于 Ruby on Rails,您需要在
config/environments/production.rb
或类似文件中使用 config.force_ssl = true
。
- 您可能会看到很多教程使用
.herokuapp.com
链接而不是 .herokudns.com
作为 PointDNS 中的 DNS 目标。 这可能适用于 HTTP 流量,但您的 HTTPS session 将失败。即使您仅使用 HTTP(也许您使用的是免费的),也请使用 .herokudns.com
托管计划),因为以后设置 HTTPS 会更容易。
引用资料:
- > Heroku Dev Center: Custom Domain Names for Apps
- > Heroku Dev Center: SSL Endpoint
- > Heroku Help: Can Heroku force an application to use SSL/TLS?
- > Heroku Dev Center: PointDNS (有点过时,但可能是一个很好的资源)
我是一名优秀的程序员,十分优秀!