我无法生成Heroku将接受secure.mydomain.com的ssl证书。我正在使用DNSimple,Cedar Stack,并按照此处的说明进行操作:https://devcenter.heroku.com/articles/ssl-certificate
$ curl https://knowledge.rapidssl.com/library/VERISIGN/ALL_OTHER/RapidSSL%20Intermediate/RapidSSL_CA_bundle.pem > rapidssl_bundle.pem
cat server.orig.crt rapidssl_bundle.pem > server.crt
所以现在我有了server.key& server.orig.crt文件,我尝试使用$ heroku certs:add server.crt server.key
上传到Heroku。这给出了错误
Key could not be read since it's protected by a passphrase.
上述文档未提及有关从server.key文件中删除密码的任何内容。所以我在这里挖掘并找到了文档:https://devcenter.heroku.com/articles/ssl#customdomain-ssl。我在上面的#1和#2之间运行这些命令:
1b中。 $ mv server.key server.orig.key
1c上。 $ openssl rsa -in server.orig.key -out server.key
然而,这会产生错误
unable to load Private Key
47930:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-47/src/crypto/pem/pem_lib.c:648:Expecting: ANY PRIVATE KEY
我怀疑这意味着找不到私钥。
任何人都知道这里的问题是什么?这是Heroku问题还是openssl问题(或DNSimple问题)?
答案 0 :(得分:8)
我只是在使用DNSimple和RapidSSL在Heroku应用程序上安装SSL Certs几乎完全相同的问题,并希望在此处发布我的解决方案,以防有类似问题的人遇到此响应。
我按照SO和Heroku开发中心的所有地方的指示通过DNSimple和RapidSSL安装证书,但每次我尝试使用命令添加证书时:
$ heroku certs:add server.crt bundle.pem server.key
无论我做了什么,我都收到了这个错误:
$ Adding SSL Endpoint to mysite... failed
! Key could not be read since it's protected by a passphrase.
! Read instructions on how to remove the passphrase on:
! http://www.madboa.com/geek/openssl/#key-removepass`
我知道密钥没有密码(因为我经历了多次这个过程),但它仍然不想添加密码。虽然我不确定哪一个是硬道理,但我做了两件最终使它工作的事情。
首先,我确保在Apache,Plesk& amp;下载下正确的PEM文件。从RapidSSL电子邮件链接到中级证书的CPA框。
第二件事是通过执行以下步骤验证我的Heroku工具带安装:https://devcenter.heroku.com/articles/heroku-command#installing-the-heroku-cli
原来我还在使用gem并且必须卸载,直到我到了heroku-toolbelt,然后我再次尝试添加证书并且瞧。
答案 1 :(得分:2)
这个问题挣扎了好几天!直到我遇到这个帖子并遵循升级建议。我要做的第一件事是
gem uninstall heroku --all
我对保留可执行问题回答'是',因为我在stackoverflow上读过另一篇文章。然后我去了https://toolbelt.herokuapp.com/并安装了工具带(尽管heroku --version说它已安装)。升级到heroku-toolbelt 2.39.0。重新尝试以下命令,它起作用了:
heroku certs:添加cert.cer bundle.pem server.key
也许我今晚终于有点睡觉了:)
答案 2 :(得分:1)
这真的很愚蠢,但据我所知,在Mac OS中使用TextEdit来保存初始server.key和server.orig.crt文件存在问题。
我使用了TextMate,一切正常。
答案 3 :(得分:0)
旧的工具带安装是我在Windows上的问题。
即使heroku update
将版本号从2.30.1更改为2.39.0,但heroku version
显示由于某种原因未正确更新。
我从https://toolbelt.herokuapp.com/重新安装了工具带并再次尝试了,一切正常。
heroku version
现在对我说这个,并且证书:add正常工作:
heroku-gem/2.39.0 (i386-mingw32) ruby/1.9.2
答案 4 :(得分:0)
我现在遇到了同样的错误,即使是最近的 heroku/7.47.6
(来自 npm)。
原因原来是我从 Let's Encrypt 得到了一个椭圆曲线证书,私钥文件包含:
-----BEGIN EC PRIVATE KEY-----
根据 https://devcenter.heroku.com/articles/acquiring-an-ssl-certificate 不支持:
<块引用>Heroku 仅支持证书的 RSA 密钥。不支持椭圆曲线键。
一旦我获得了 RSA 证书,它就奏效了。
(具体来说,dehydrated 现在默认为 --algo secp384r1
,我不得不提供 --algo rsa
。但其他工具/CA 的想法应该是一样的,你需要一个 RSA 证书。)< /p>