我最近在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付费,但有另一种方法可以实现吗?
答案 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。