Heroku SSL 添加但访问域仍然显示连接不是私有的

Posted

技术标签:

【中文标题】Heroku SSL 添加但访问域仍然显示连接不是私有的【英文标题】:Heroku SSL added but visiting domain still says connection is not private 【发布时间】:2017-02-17 09:54:13 【问题描述】:

我使用 Heroku 部署我的应用程序,我使用 GoDaddy 购买我的自定义域名,并从他们那里购买了我的 SSL 证书。

我们将我的应用程序的 heroku 托管版本称为 example-101.herokuapp.com 让我们将我拥有的自定义域称为 mycustomdomain.com

我试图通过 heroku 设置我的 GoDaddy 购买的 SSL 证书,并按照此处的所有步骤完成第 7 步: http://www.joshwright.com/tips/setup-a-godaddy-ssl-certificate-on-heroku

一切似乎都设置得很好。当我查看 Heroku GUI 时,在我的 example-101.herokuapp.com 设置中,在“自定义域”下它列出了 www.mycustomdomain.commycustomdomain.com ,每个都有 DNS 目标 mycustomdomain.com.herokudns.comwww.mycustomdomain.com.herokudns.com

当我在终端运行时:

curl -kvI https://www.mycustomdomain.com

输出显示“已连接”,“成功设置证书验证位置”,在所有握手后显示“SSL 证书验证正常”。

现在,恐怕我的问题可能出在这了。

在 GoDaddy 中,在 mycustomdomain.com 的 DNS 管理下,我按照 heroku 说明创建了一条新记录,如下所示: 类型:CNAME 名称:www 值:example-101.herokuapp.com TTL:1 小时

但这是基于不考虑添加 SSL 证书的文档。

当我跑步时

heroku certs

它给了我以下信息: 名称:腕龙-94028 通用名称:www.mycustomdomain.com、mycustomdomain.com 可信:真 类型:SNI

我应该在任何地方引用 brachiosaurus-94028 吗?

当我实际尝试在浏览器中访问 www.mycustomdomain.com 时,它读取的错误是 NET::ERR_CERT_COMMON_NAME_INVALID ,并且在详细信息中,它说主题是 *.herokuapp.com 是这个问题吗?当它应该指向 herokussl.com 或类似性质的东西时,它指向的是 herokuapp.com?

如果您对为什么这不起作用有任何见解,请告诉我。

另外,我刚刚在大约一个小时前设置了所有这些。它是否需要一两天才能正常工作并且浏览器识别 SSL 证书?我是在急于寻求帮助吗?

【问题讨论】:

【参考方案1】:

我联系了 heroku 支持,我的问题已解决。

1,正确设置您的 CNAME(我使用了 namecheap 域)

2,之后,检查heroku DNS目标是否与namecheap主机值相同。

3、重启ACM(ssl)

4,您需要等待几分钟才能查看网站。

【讨论】:

【参考方案2】:

Heroku 有一个新的 ssl 实现:https://devcenter.heroku.com/articles/ssl

提问者似乎正在使用这个新实现。对于此实施,需要在您的 DNS 管理中将CNAME 设置为mycustomdomain.com.herokudns.com。在您的情况下,您不需要引用您的证书名称 brachiosaurus-94028

【讨论】:

但这与上述答案相矛盾...告诉我们将 cname 指向 ssl dns 名称。【参考方案3】:

当您将 SSL 插件添加到 Heroku 时,它会生成一个新域,您应该将其用作您的 CNAME 值,它不再是原来的 herokuapp.com。 heroku certs 命令应该给你你应该使用的域,它的结尾是herokussl.com

在您的情况下,您可能应该将 CNAME 的值设置为 brachiosaurus-94028.herokussl.com(您可以在浏览器上测试端点以查看它是否有效)。

它也不应该花费太多时间来工作(当我这样做时,它总是立即)

更多信息请查看Heroku docs

【讨论】:

【参考方案4】:

就我而言,遇到此错误是因为我的 DNS 记录将 app-name.herokuapp.com 指定为 CNAME 的目标,而不是提供的 DNS 目标。更新您的 DNS 记录以指向正确的 DNS 目标。

要获得正确的 DNS 目标,请在 cli 中运行 heroku 域,它将显示如下内容:

=== app-name 自定义域 域名 DNS 记录类型 DNS 目标 api.myapp.io CNAME strong-tick-i29i319i39121321.herokudns.com

【讨论】:

以上是关于Heroku SSL 添加但访问域仍然显示连接不是私有的的主要内容,如果未能解决你的问题,请参考以下文章

如何为从 Google Domains 到 Heroku 的裸域设置 SSL?

自动SSL或加速ssl无法在heroku上运行

邮件发送到.herokuapp.com域

如何为 Heroku 应用程序配置带有 SSL 的 Amazon Route

无法将 Heroku 连接到自定义 Google 域

将 Heroku App 连接到 Atlas MongoDB 云服务