SSL 与 Heroku 托管和 Gandi 域

标签 ssl heroku dns

我正在尝试使用 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/

相关文章:

java - 无法将 .jks 转换为 .pkcs12 : excess private key

spring-mvc - 如何绕过 Openshift 上 URLConnection 的 SSL 检查

ssl - SIM800L HTTPSSL 出现未知错误

node.js - 来自 dokku 容器的 DNS 查找

azure - Azure 域设置中更新的 DNS 记录未显示在 digwebinterface.com 中

sockets - Meteor 是否允许自签名 SSL 证书

python - 在 Heroku 上部署 python 网站,无法正常工作

java - 在 heroku 上部署 Spring MVC Web 应用程序

ruby-on-rails - 运行 heroku rake db 时遇到问题 :migrate getting rake aborted! 错误

angularjs - Meteor、Angular 路由、Nginx 和 SSL - 如何通过重写路由/路径到另一台服务器