【问题标题】:SSL with Heroku hosting and Gandi domains带有 Heroku 主机和 Gandi 域的 SSL
【发布时间】:2018-03-04 13:21:21
【问题描述】:

我正在尝试使用 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 的大部分工作原理,所以我可能完全错了。

感谢任何帮助!

【问题讨论】:

    标签: ssl heroku dns


    【解决方案1】:

    您实际上可以使用 heroku 的 SSL 序列。
    您在 Gandi 中可以做的就是重定向到 https://www.yoursite.com :) 考虑到您将 DNS 设置更改为 heroku 提供的设置。

    【讨论】:

      【解决方案2】:

      根据我的经验对这个问题进行跟进。我从 Gandi 购买了一个域名,并使用永久网络转发将域名转发到我的 heroku 应用程序。我还将自定义域(我购买的那个)添加到 heroku 控制台。

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

      即使我已经为爱好计划付费,我也无法成功采用 heroku ACM 来配置我的域。

      我按照 Johnnybib 发布的教程 video 进行操作。

      1. openssl req -nodes -newkey rsa:2048 -sha256 -keyout server.key -out server.csr在项目中创建server.crs和server.key
      2. 前往 Gandi 购买 SSL 证书页面
      3. cat server.csr 并将其粘贴到 Gandi 控制台
      4. 付款并等待验证完成以完成此帐单
      5. 下载 .crt 和 .pem 证书并将它们连接到 all.crt 中
      6. 使用heroku certs:add --app xshogi all.crt server.key

      另外,记得将 CNAME wwwwebredir.vip.gandi.net. 更改为 xshogi.com.tw.herokudns.com

      一切准备就绪,稍等片刻,我可以 curl https://www.xshogi.com.tw。我也可以在浏览器中连接到https://www.xshogi.com.tw,并且URL不会更改为https://xshogi.herokuapp.com

      【讨论】:

        【解决方案3】:

        在 gandi 中使用 heroku ssl 证书是可能的(而且更便宜)...您只需要确保每次都设置一个子域。我相信heroku自动证书不支持裸子域或通配符,因为我们加密restrictions。一旦您的所有子域的状态都正常,不要忘记在您的应用程序中使用 force_ssl,这样每个 http 请求都会被重定向到 https。你可以这样做:

        # config/environments/{staging,production}.rb
        config.force_ssl = true
        

        非常重要!不要忘记删除或编辑任何指向外部资产的无保护链接。否则,浏览器将使用Modzilla support page about mixed content 中所述的不安全链接来判断页面。

        完成所有这些后,您会在应用的每个页面上看到令人满意的绿色锁:D。

        【讨论】:

          【解决方案4】:

          好的,显然在 Gandi 中使用 Heroku 的 SSL 证书是不可能的,所以我最终选择了 Gandi 的 SSL 证书。如果有人需要教程,这里是 Le Wagon 的一个很棒的教程 https://vimeo.com/209534466

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-05-01
            • 1970-01-01
            • 2014-03-17
            • 2016-03-29
            • 2019-05-03
            • 2012-04-30
            • 2018-11-29
            • 1970-01-01
            相关资源
            最近更新 更多