5

我正在尝试向 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 结合起来。所有这些都没有运气。

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

谢谢

4

4 回答 4

12

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

以下是我修复它所遵循的步骤。

  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站点中删除密码的步骤。如果您使用具有密码的密钥,请参阅这篇文章,其中详细介绍了如何为 heroku 设置 SSL。无论如何,您都应该执行上述步骤 2。

于 2012-08-20T12:03:05.023 回答
1

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

于 2012-06-20T18:12:16.223 回答
0

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

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

于 2012-07-12T04:56:13.617 回答
0

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

$ cat site.crt ca_bundle.pem > final.crt
于 2012-08-01T09:16:11.583 回答