我购买了 Gandi.net SSL 证书,并且正在遵循此教程。
- 我创建了密钥文件。
- 然后将其转化为CSR
- 然后将其添加到 Gandi 网站并等待 CRT。
- 然后从密钥中删除密码 ===> 结果:[最终密钥]
- 然后将 CRT 和 FINAL KEY 合并到一个文件中 ==> 结果:[FINAL PEM]
- 然后 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 时遇到了类似的问题,并最终发表了一篇有关它的博客文章:
编辑:使用 Heroku,您需要确保您的证书顺序正确。如果您已经推送/添加了混乱的证书,您可以尝试按不同的顺序排列它们(效率不高,但可以完成工作),您可以查看Heroku SSL 医生并利用“绕过”选项来放弃通常的允许您添加/更新新证书的显示停止器。
TL;DR => 使用 Heroku SSL Endpoint 时,请务必包含整个包,并确保该包的内容顺序正确。如果遇到问题,请尝试 Heroku SSL doctor。
答案3
我从另一个提供商获得了证书,但我将公共证书和私钥保存在单独的文件中,并且它起作用了。