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

问题描述 投票:8回答:2

我正在尝试使用Heroku获取我的应用程序的SSL认证,但Automated Certificate Management未能同时使用其中一个域名。

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

然后,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

这似乎与what heroku expects一致。

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

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

我承认我对域,DNS等设置非常不识字。因此,这可能是我身边的一个非常简单的错误。然而,我读了Heroku troubleshooting documentation以及类似的问题,如this onethis one,仍然不知道有什么不对。

事实上,www.example.com还行,但example.com失败只是让我更加困惑。不幸的是,我收到了一封没有failure reason的通知电子邮件。

Namecheap

我想问题是在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上找到了following ticket

问题

用户无法将其根域(也称为顶点域/裸域)指向其Heroku应用程序,无论是设置正确的DNS记录还是通过HTTPS访问它。

解析度

Heroku上的根域需要使用“CNAME-like”记录,通常称为ALIAS或ANAME记录。

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

  • 一个记录
  • URL重定向/转发

有这两个选项的警告......

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

  1. 使用支持此功能的DNS主机打开一个帐户。我拿了DNSimple。在撰写本文时,价格从5欧元/月开始,但免费试用一个月。
  2. 转移域名成本14欧元/年,所以我只是pointed the name servers at Namecheap to DNSimple并将域名添加到DNSimple来创建DNS记录。
  3. 然后是DNSimple上的配置。我按照文档中的步骤1进行了redirect HTTP to HTTPs;由于Heroku的ACM已经完成了它,所以忽略了第2步;对于第3步,文章Pointing the Domain Apex to Heroku非常有帮助。我手动添加了ALIAS record,我还添加了一个CNAME记录,如下所示: Type Name Content ───── ─────────────── ─────────────────────── ALIAS example.commyapp.com.herokudns.com CNAME www.example.commyapp.com.herokudns.com

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

无法访问此网站

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

检查troubleshotting documentation我看到唯一的可能性是Name server propagation delay,所以我等了。这感觉好像很长一段时间,但实际上只需不到一个小时,直到该网站再次上线。

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

ssl heroku ssl-certificate namecheap dnsimple
2个回答
4
投票

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


2
投票

请在此处查看答案,尤其是CloudFlare解决方案,因为它是免费的

自动化证书管理还为您提供来自https的免费SSL证书。您无需购买证书。

但是,namecheap不适用于ACM,因为它们不允许“apex”域的“别名”记录。你的域名没有子域名所以https://example.com不是https://www.example.com

您的选项将切换到支持“别名”记录的dns注册器,例如dnsimple。除域名注册费外,他们每月收费5美元。

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

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

我在某些应用程序上使用DNSimple / Heroku ACM,在其他应用程序上使用cloudflare。两者都同样不错,但cloudflare是免费的,也给你一个CDN。

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

© www.soinside.com 2019 - 2024. All rights reserved.