如何使用Heroku的SSL端点配置裸域名?

时间:2012-05-30 07:10:58

标签: ruby-on-rails ruby ssl heroku dns

我最近在Heroku上运行的Rails应用程序中添加了SSL功能。我成功购买并为我的域创建了证书并在GoDaddy中使用了CNAME,当用户浏览到www.myappname.com时,我的应用的WWW子域正常工作

页面加载时没有任何警告,证书按原样运行。

CNAME看起来像这样: 主持人: www 指向: myappnamefoobar-1234.herokussl.com

但是,当我只是转到“裸”域名 - myappname.com时,会出现证书错误。

如何在GoDaddy中配置DNS设置以使其正常工作?

https://devcenter.heroku.com/articles/avoiding-naked-domains-dns-arecords

Heroku的文档中有一篇关于裸域的文章,但我不知道这将如何适用于GoDaddy的DNS管理器。

我知道Heroku有某种基于IP的SSL付费,但有另一种方法可以实现吗?

4 个答案:

答案 0 :(得分:3)

诀窍是使用rack-rewrite:

https://github.com/jtrupiano/rack-rewrite

它允许Rails从mydomainname.com重定向到www.mydomainname.com,因为Heroku不允许裸域。

然后,您可以使用DNS管理器将www.mydomain.com指向Heroku的SSL端点(付费,每月20美元)。

答案 1 :(得分:1)

我不相信GoDaddy支持这样的功能。

最好的选择是使用DNSimple ALIAS record type之类的东西,它为CNAME记录提供根域支持。

然后您可以像这样设置您的记录(假设使用SSL Endpoint进行SSL)。

| type  | name | target                  |
| ALIAS |      | tokyo-123.herokussl.com |
| CNAME | www  | tokyo-123.herokussl.com |

虽然还有其他DNS提供商提供类似的ALIAS记录功能,但它不是DNS规范中的内容。这就是我们尚未提供有关使用此类记录的详尽文档的原因。但是,我们的目标是在不久的将来纠正这一问题,因为对那些想要根域支持的人缺乏明确的指导。

同时关注using AWS Route 53 as your Heroku app's DNS。我相信很快或很快就可以在R53上实现这一目标。

答案 2 :(得分:0)

如果您购买的证书具有公用名"www.yourdomain.com",并且您使用任何其他URL浏览到该站点,您将在浏览器中收到证书警告。

警告告诉您该URL与域名不匹配。

解决此问题的一种方法是购买通配符证书。这允许*.yourdomain.com"

答案 3 :(得分:0)

我一直在努力解决同样的问题。我总是不得不自己设置301 SSL重定向,所以在某些时候我累了,决定创建https://www.nakedssl.com来解决这个确切的问题。它对一个域免费:)。

免责声明:显然,我是创建NakedSSL的团队的一员,有些人可能会考虑自我推销 - 即使我们免费提供服务。在任何情况下,我认为这仍然是一个很好的解决方法,直到所有DNS管理提供商都支持裸域上的CNAME / ALIAS。