Heroku 自动证书管理失败,只有一个域



我正在尝试使用 Heroku 为我的应用程序获取 SSL 认证,但两个域名之一的自动证书管理都失败了。

我在 2017 年 3 月之前创建了测功机,所以我必须按照此处的说明运行heroku certs:auto:enable

然后,heroku domains返回:

Domain Name         DNS Record Type  DNS Target
───────────────     ───────────────  ─────────────────────────────
example.com         ALIAS or ANAME   example.com.herokudns.com
www.example.com     CNAME            www.example.com.herokudns.com

这似乎符合希罗库的预期。

无论如何,heroku certs:auto返回:

Domain             Status
───────────────    ────────────
example.com        Failing
www.example.com    OK          

我承认我对有关域,DNS等的设置很文盲。因此,从我的角度来看,这可能是一个非常简单的错误。但是,我阅读了 Heroku 故障排除文档以及 SO 中的类似问题,例如这个或这个,但仍然不知道出了什么问题。

www.example.com没问题但example.com失败的事实让我更加困惑。不幸的是,我收到了一封没有失败原因的通知电子邮件。

名称便宜

我想问题要么出在 Heroku 上,要么出在我购买域名的地方。这是 Namecheap.com。

在那里,在Domain选项卡中,我有:

NAMESERVERS Namecheap BasicDNS

REDIRECT DOMAIN   Source URL     Destination
example.com    http://www.example.com

Advanced DNS选项卡中:

Type                  Host    Value                               TTL
-------------         -----   -------------------------------     -------
CNAME Record          www     example.com.herokudns.com           Automatic
TXT Record            @       google-site-verification...         Automatic
URL Redirect Record   @       http://www.example.com/ Unmasked

我做错了什么?


更新

这个问题似乎是由于Namecheap造成的。我在Heroku上找到了以下票:

问题

用户在指向其根域(也称为顶点)时遇到问题 域/裸域)到他们的 Heroku 应用程序,要么通过设置 正确的 DNS 记录,或通过 HTTPS 访问它。

分辨率

Heroku 上的根域需要使用"类似 CNAME"的记录,通常 称为别名或 ANAME 记录。

不幸的是,许多流行的DNS主机,例如GoDaddy, Namecheap,Bluehost和其他公司不支持这些类型的记录。 相反,他们倾向于提供以下内容:

  • A 记录

  • 网址重定向/转发

这两个选项都有注意事项...

令人惊讶的是,我没有找到任何清楚地解释所有步骤的地方。到目前为止,我所做的是:

  1. 使用支持此功能的 DNS 主机开立帐户。我参加了 DNSimple。在撰写本文时,价格从每月5欧元起,但有一个免费试用月。
  2. 转移域名的费用为14欧元/年,所以我只是将Namecheap的名称服务器指向DNSimple,并将域名添加到DNSimple以创建DNS记录。
  3. 然后是DNSimple上的配置。我按照文档中的步骤 1 将 HTTP 重定向到 HTTP;忽略了第 2 步,因为 Heroku 的 ACM 已经完成了;对于第 3 步,文章将域顶点指向 Heroku 非常有帮助。我手动添加了一个ALIAS record,还添加了一条CNAME记录,如下所示:

    Type        Name                   Content
    ─────       ───────────────        ───────────────────────
    ALIAS       example.commyapp.com.herokudns.com
    CNAME       www.example.commyapp.com.herokudns.com
    

一开始没有任何工作,浏览器显示以下错误:

无法访问此站点

找不到www.example.com 的服务器 IP 地址。

检查故障排除文档时,我发现唯一的可能性是Name server propagation delay,所以我等待。感觉时间很长,但实际上不到一个小时,网站就再次上线了。

但是,SSL认证在超过48小时后仍然失败...

供将来参考:在联系 Heroku 支持后,他们手动刷新了我的证书请求,最终为我的应用程序颁发了证书请求......

在这里查看答案,尤其是CloudFlare解决方案,因为它是免费的

自动证书管理还为您提供免费的 SSL 证书 从HTTPS无处不在。您无需购买证书。

但是namecheap不适用于ACM,因为它们不允许 您的"顶点"域的"别名"记录,即您的域没有 子域,所以 https://example.com 不 https://www.example.com

您的选项是切换到支持"别名"的 DNS 注册商 记录,如 dnsimple。除了 域名注册费。

或者使用SSL附带的免费cloudflare实例。

如果您已经购买了证书,则可以通过以下方式将其上传到Heroku 一个 SSL 插件。

我在某些应用程序上使用DNSimple/Heroku ACM,在某些应用程序上使用cloudflare。 别人。两者都同样不错,但 cloudflare 是免费的,并为您提供 CDN也是。

https://www.reddit.com/r/Heroku/comments/7wh5r4/setting_up_ssl_with_heroku_namecheap/

相关内容

  • 没有找到相关文章

最新更新