我对如何设置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分钟后已经生效。
有人可以告诉我这是什么问题吗?
答案 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流量。