【问题标题】:Trouble with Heroku SSL EndpointHeroku SSL 端点的问题
【发布时间】:2012-06-20 18:10:45
【问题描述】:

我正在尝试向 Heroku 添加 SSL 证书。该证书是从 Network Solutions 购买的。我完成了所有步骤并创建了一个 .csr 文件,将该文件上传到 NetworkSolutions,下载了他们的 .crt 文件包(MYSITE.crt、AddTrustExternalCARoot.crt、NetworkSolutionsDVServerCA.crt),然后结合了站点证书和中间证书(AddTrustExternalCARoot.crt) 捆绑包。当我尝试将我生成的 final.crt 文件添加到 Heroku 时,我得到:

!    Expires at can't be blank
!    Pem is invalid

使用预览我可以清楚地看到设置了“之后无效”,所以我不确定这里发生了什么。

为了它的价值,我还尝试将 NetworkSolutionsDVServerCA.crt 与 MYSITE.CRT 结合起来,并将所有 3 结合起来。都没有运气。

这种事情不是我的强项(我相信你可以说出来),所以我很可能遗漏了一些东西,但如果你对它可能是什么有任何想法,我将不胜感激。

谢谢

【问题讨论】:

  • 您找到解决方案了吗?我遇到了同样的问题。发布对你有用的东西会很有帮助。谢谢
  • 不,我没有,我最终继续从事其他工作,并认为我会重新开始。你找到解决办法了吗?

标签: ssl heroku openssl


【解决方案1】:

我今天遇到了同样的问题。

以下是我修复它的步骤。

  1. 按以下顺序组合证书文件(来自网站 证书到根证书)到 .crt 或 .pem 文件中。假设您将其命名为 Mysite_combined.crt

    MySite.crt、NetworkSolutionsDVServerCA.crt、AddTrustExternalCARoot.crt

  2. 打开 Mysite_combined.crt 文件的内容会是这样的

    -----BEGIN CERTIFICATE-----
    ..
    -----END CERTIFICATE----------BEGIN CERTIFICATE-----
    ..
    -----END CERTIFICATE----------BEGIN CERTIFICATE-----
    

现在,在每个证书之间插入换行符。确保编辑后的文件中没有空格或空行。内容现在应该看起来像

-----BEGIN CERTIFICATE-----
..
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
..
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
  1. 现在使用命令将证书添加到 Heroku

    heroku 证书:添加 Mysite_combined.crt Mysite.key

注意:由于网络解决方案证书没有密码,您可以忽略heroku站点中删除密码的步骤。如果您使用具有密码的密钥,请参阅this article,其中详细说明了如何为 heroku 设置 SSL。无论如何,您都应该执行上述第 2 步。

【讨论】:

  • 谢谢!工作完美。 Heroku 更新它的文档会很好!
  • 非常感谢!我只花了 2 个小时来解决同样的问题。组合文件中证书之间的换行是关键! +1 用于更新 Heroku 文档。
  • 仅供参考当您合并这两个文件时,使用 .crt 可能更安全,因为您提到的 .pem althoufgh 应该以任何一种方式工作....当我尝试 .pem heroku 时,但是当我使用.crt 它起作用了。这是完全相同的文件,因为我刚刚将 .pem 复制到了新的 .crt 文件名。
【解决方案2】:

很可能是他们将您的证书与中间证书放在一起的错误。您应该查看是否存在可能导致错误的缺少换行符或额外换行符。

【讨论】:

  • 不幸的是,事实并非如此。从我读到的内容来看,这似乎是最常见的问题,但这似乎更深入一些。昨天我花了太多时间试图弄清楚,所以这个周末我打算从头开始。感谢您的回复。
【解决方案3】:

我也遇到了这个问题,就我而言,它原来是参数的顺序。显然 heroku 实用程序希望 .crt 文件位于 .key 文件之前。

换句话说:heroku certs:add server.crt server.key

【讨论】:

    【解决方案4】:

    当我收到此错误时,我必须在我的 site.crt 末尾添加一个换行符,然后才能运行此命令:

    $ cat site.crt ca_bundle.pem > final.crt
    

    【讨论】:

      猜你喜欢
      • 2016-08-13
      • 2016-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2020-06-26
      相关资源
      最近更新 更多