我在StartSSL.com上获得了安全证书,并密切关注Heroku上的步骤。我获得了中级证书和根证书。
我尝试了不同的方法来链接这些文件,但是我收到了这个错误(见截图)
http://i.imgur.com/8WVmAVu.jpg
如何解决此错误?
我下载的文件是:
ca.pem (root cert)
sub.class1.server.ca.pem (intermediate cert)
copy and pasted the private key as server.key
copy and pasted the certificate as server.orig.crt
There's also the ca-bundle.pem that I tried using but no luck
我刚刚重新加载了所有文件并运行了这个" cat server.orig.crt sub.class1.server.ca.pem ca-bundle.pem> server.crt这" 然后运行heroku证书:添加server.crt server.key,我收到此错误
Unable to read server.crt file
此外,我刚试过没有任何CAT,只是" heroku证书:添加ca-bundle.pem server.key"我收到此错误
No certificate given is a domain name certificate
答案 0 :(得分:9)
适合在heroku上安装的pem编码证书链应按顺序包括:site,intermediate,然后是root pem编码的证书。
cat server.orig.crt sub.class1.server.ca.pem ca.pem > heroku.crt
在我看来,更像是您的私钥问题 - 您需要确保pem文件未使用密码加密,并且它与用于生成证书的密钥对相同。如果加密,私钥的头部将如下所示:
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
...
而不只是:
-----BEGIN RSA PRIVATE KEY-----
MIICaQIBAAKBhACxlzv7H57F+vapTjqS9qdfDg20RjwFFU1B3yK8SqN7rX0jpjsW
H3B2lhCqKPWd2To2LoOolhnsFbr5qlKK3ep/nuUZfkx1aOIg4L0FgzbuCSJfKE5B
...
在前一种情况下,运行(linux,mac os):
openssl rsa -in server.key -out server.unencrypted.key
并在提示时输入密码。然后在调用heroku时使用server.unencrypted.key来添加证书。