我正在尝试使用 Heroku 设置 SSL 自动证书管理。我在 Gandi 有我的域,但在设置 DNS 目标时遇到问题。
Heroku 说它应该如何设置:
Domain Name DNS Target
mydomain.com mydomain.com.herokudns.com
www.mydomain.com www.mydomain.com.herokudns.com
在 Gandi 中我会很理想
Name Type Value
www CNAME www.mydomain.com.herokudns.com
@ CNAME mydomain.com.herokudns.com
但是,您不能将根域分配给 CNAME 记录,因此第二行不起作用。
另一种方法是使用 A 记录
Name Type Value
www CNAME www.mydomain.com.herokudns.com
@ A 1.2.3.4 (IP Address of my site)
但这同样不起作用,因为 Heroku 托管站点的 IP 地址可能会更改。 所以我想我找到了解决方法,通过 Gandi 的网络转发将 mydomain.com 转发到 www.mydomain.com。对于我的 DNS 记录,我只有:
Name Type Value
www CNAME www.mydomain.com.herokudns.com
现在网站可以正常运行了,我可以通过访问 www.mydomain.com 或 mydomain.com 来访问它,但是现在我的 SSL 认证不起作用了!
我的网站仍然显示“您与此网站的连接不安全”
当我在 Heroku 上查看状态时,我得到:
Domain Status
─────────────── ───────
www.mydomain.com OK
mydomain.com Failing
我今天基本上刚刚了解了 DNS 的大部分工作原理,所以我可能会完全错误地做这件事。
感谢任何帮助!
最佳答案
将 heroku ssl 证书与 gandi 一起使用是可能的(而且更便宜)...您只需要确保每次都设置一个子域。我相信 heroku 自动证书不支持裸子域或通配符,因为让我们加密 restrictions .一旦您的所有子域的雕像都正常,请不要忘记在您的应用程序中使用 force_ssl,因此每个 http 请求都将被重定向到 https。你可以这样做:
# config/environments/{staging,production}.rb
config.force_ssl = true
非常重要!不要忘记删除或编辑任何指向外部 Assets 的不安全链接。否则浏览器将判断带有这些链接的页面不安全,如 Modzilla support page about mixed content 中所述。 .
完成所有这些后,您会在应用的每个页面上看到令人满意的绿色锁 :D。
关于SSL 与 Heroku 托管和 Gandi 域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46373583/