Heroku SSL:Pem 无效/密钥与 Pem 证书不匹配

Heroku SSL:Pem 无效/密钥与 Pem 证书不匹配

我购买了 Gandi.net SSL 证书,并且正在遵循此教程

  1. 我创建了密钥文件。
  2. 然后将其转化为CSR
  3. 然后将其添加到 Gandi 网站并等待 CRT。
  4. 然后从密钥中删除密码 ===> 结果:[最终密钥]
  5. 然后将 CRT 和 FINAL KEY 合并到一个文件中 ==> 结果:[FINAL PEM]
  6. 然后 heroku ssl:添加 final_pem final_key --app app_name

并且...得到的 Pem 无效/密钥与 Pem 证书不匹配。

我尝试了三次,但我真的不知道发生了什么。

你能帮我吗 ?

答案1

我想我在尝试在 Heroku 上使用 Gandi 证书时可能遇到了类似的问题。Heroku 一直抱怨我的 PEM 文件与我的密钥不匹配,并且运行时openssl x509 -noout -modulus -in example.com.crt出现“ unable to load certificate”错误。

我遇到的问题很简单:当我从 Gandi 下载证书时,证书文本和“--END CERTIFICATE...”行之间有一个额外的空白行:

ghjg86GHHJ47Nmmmaiuoj8bUW8bbn/9w78sTxuguHQWjhuhuQWQhuybyyA==

-----END CERTIFICATE-----

当我删除空白行时,一切都正常:

ghjg86GHHJ47Nmmmaiuoj8bUW8bbn/9w78sTxuguHQWjhuhuQWQhuybyyA==
-----END CERTIFICATE-----

我认为当您创建最终的 PEM 文件时,您想要连接您的证书和您的 CA 的证书,而不是您的证书和您的私钥:

cat example.com.crt certificate-issuer.com.pem > example.com.pem

最后我发现http://blog.bloom.io/2011/09/16/https-ssl-table-stakes/对整个过程非常有帮助。

答案2

不知道这是否仍然相关,但我在使用 Heroku SSL Endpoint 时遇到了类似的问题,并最终发表了一篇有关它的博客文章:

http://starvingdeveloper.wordpress.com/2012/09/18/comodo-ev-ssl-with-heroku-if-you-did-it-wrong-the-first-time/

编辑:使用 Heroku,您需要确保您的证书顺序正确。如果您已经推送/添加了混乱的证书,您可以尝试按不同的顺序排列它们(效率不高,但可以完成工作),您可以查看Heroku SSL 医生并利用“绕过”选项来放弃通常的允许您添加/更新新证书的显示停止器。

TL;DR => 使用 Heroku SSL Endpoint 时,请务必包含整个包,并确保该包的内容顺序正确。如果遇到问题,请尝试 Heroku SSL doctor。

答案3

我从另一个提供商获得了证书,但我将公共证书和私钥保存在单独的文件中,并且它起作用了。

相关内容