namecheap DNS配置不适用于Heroku自定义域上的https

时间:2016-06-03 14:41:27

标签: ssl heroku https dns namecheap

我对如何设置namecheap和heroku非常困惑,因此他们一起工作以通过https提供自定义域。

我正在使用heroku ssl beta,在配置结束时,heroku已更新其域名映射,如下所示:

myapp.com        myapp.com.herokudns.com
www.myapp.com    wwww.myapp.com.herokudns.com

ssl证书已成功添加到heroku,我知道,因为我可以使用绿色挂锁访问https://myapp.herokuapp.com

下一步应该是修改namecheap DNS,我遵循了这个tutorial

我添加的条目是:

CNAME Record    www    myapp.herokuapp.com
URL Redirect    @      https://www.myapp.com

那应该是它,但它不能像我预期的那样工作。

如果我输入myapp.com,它会转到https://www.myapp.com(因此重定向有效),但没有挂锁。

如果我直接转到https://www.myapp.com,也一样。

我确定这不是因为改变尚未生效,因为我已经搞乱了其他域名,并且在5分钟后已经生效。

有人可以告诉我这是什么问题吗?

3 个答案:

答案 0 :(得分:5)

我发现有什么问题,在将ssl证书上传到heroku之后,我应该停止使用myapp.herokuapp.com,而是使用myapp.com.herokudns.com,所以在namecheap的DNS配置中,我应该有以下内容:

CNAME Record    @        myapp.com.herokudns.com
CNAME Record    www      www.myapp.com.herokudns.com

我不认为重定向是必要的(即使在Namecheap的document中它表示你不应该在裸域上设置CNAME,而应该重定向www)。我尝试使用URL redirect record www https://myapp.com替换www CNAME记录,但它不起作用。

此外,当我使用let encrypt创建证书时,我只认证了域myapp.com,但忘了www.myapp.com,所以当访问www域时,浏览器抱怨证书来自myapp.com,一旦我将证书扩展到涵盖www.myapp.com,使用上面的配置,所有域都可以正常使用绿色挂锁。

答案 1 :(得分:0)

您重定向到https://www.myapp.com。浏览器需要www.myapp.com的证书,但根据您的说明,只有myapp.herokuapp.com的证书。由于URL中的主机名与证书的主题不匹配,因此浏览器会抱怨错误的证书。

答案 2 :(得分:0)

您在Namecheap中的解决方案(使用CNAME for @)也适用于https fwding到amazon ELB实例。我的域名由Namecheap提供。他们的建议(你指出的不正确)是将我的域名(x.com)的fwd https流量URL到我的亚马逊elb实例(我的x.com的ssl证书)。 URL fwding从NameCheap的服务器获得conn拒绝错误。

使用CNAME for @会为https网址显示一个漂亮的绿色安全封条。我还为同一个亚马逊elb实例添加了一个CNAME www,用于非https流量。