我正在尝试向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.所有没有运气。
这种事情不是我的强项(我相信你可以告诉)所以它很可能我错过了一些东西,但如果你对它有什么想法我会很感激。
由于
答案 0 :(得分:12)
我今天遇到了同样的问题。
以下是我修复它的步骤。
按以下顺序(来自网站)合并证书文件
证书到根证书)到.crt或.pem文件中。让我们假设您将其命名为Mysite_combined.crt
。
MySite.crt,NetworkSolutionsDVServerCA.crt,AddTrustExternalCARoot.crt
打开Mysite_combined.crt文件的内容将如下所示
-----BEGIN CERTIFICATE-----
..
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
..
-----END CERTIFICATE----------BEGIN CERTIFICATE-----
现在,在每个证书之间插入换行符。确保编辑的文件中没有空格或空白行。内容现在应该是
-----BEGIN CERTIFICATE-----
..
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
..
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
现在使用命令
将证书添加到Herokuheroku certs:添加Mysite_combined.crt Mysite.key
注意:由于网络解决方案证书没有密码,您可以忽略删除heroku站点中密码的步骤。如果您使用具有密码的密钥,请参阅this article,其中详细说明了如何为heroku设置SSL。在任何情况下都应该执行上面的第2步。
答案 1 :(得分:1)
与中间人一起犯下你的证书可能是错误的。您应该看到没有丢失的换行符,或者可能导致错误的额外换行符。
答案 2 :(得分:0)
我也有这个问题,在我的情况下,它证明是参数的顺序。显然,heroku实用程序需要.crt文件位于.key文件之前。
换句话说:heroku certs:add server.crt server.key
答案 3 :(得分:0)
当我收到此错误时,我必须在运行此命令之前在site.crt的末尾添加换行符:
$ cat site.crt ca_bundle.pem > final.crt