【问题标题】:namecheap DNS config does not work with https on Heroku custom domainnamecheap DNS 配置不适用于 Heroku 自定义域上的 https
【发布时间】:2016-06-03 14:41:27
【问题描述】:

我对如何设置 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分钟左右就已经生效了。

谁能告诉我是什么问题?

【问题讨论】:

标签: ssl heroku https dns namecheap


【解决方案1】:

我发现出了什么问题,上传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,使用上述配置,所有域都可以正常使用绿色挂锁。

【讨论】:

  • 我为 URL 重定向记录所做的是将 domain.com 设置为 www.domain.com
【解决方案2】:

您在 Namecheap 中的解决方案(使用 CNAME 表示 @)也适用于 https 转发到亚马逊 ELB 实例。我的域名由 Namecheap 提供服务。他们的建议(正如您指出的那样不正确)是将我的域(x.com)的 fwd https 流量 URL 发送到我的 amazon elb 实例(它有我的 x.com 的 ssl 证书)。 URL fwding 收到来自 NameCheap 的服务器的连接被拒绝错误。

为 @ 使用 CNAME 会为 https URL 显示一个漂亮的绿色安全标记。我还为非 https 流量添加了一个 CNAME www 到同一个亚马逊 elb 实例。

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 有道理,所以在这种情况下我不能有 URL 重定向记录?
    • @swang:你可以重定向到https://myapp.herokuapp.com,即拥有有效证书的主机。然后 URL 将与证书匹配。
    • 实际上,如果重定向是问题所在,为什么www.myapp.com 也不起作用?那不应该只是由 CNAME 记录路由吗?此外,我拥有的证书来自letsencrypt,它证明的是myapp.com而不是myapp.herokuapp.com。
    • @swang:重定向是 HTTP,CNAME 是 DNS。重定向更改 URL,CNAME 不会。对于证书验证,URL 中的主机名是相关的。
    • 我明白了,这就是我的意思,例如我现在删除了 URL 重定向记录,我的 namecheap dns 在 www 上只有一条 CNAME 记录,当我输入 https://myapp.com 时,它再也找不到页面,但是当我输入https://www.myapp.com 时仍然没有挂锁
    猜你喜欢
    • 2017-09-08
    • 2020-06-05
    • 2018-05-31
    • 2018-11-01
    • 2018-03-11
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多