7

我在 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 certs:add server.crt server.key得到这个错误

Unable to read server.crt file

此外,我只是在没有任何 CAT 的情况下尝试过,只是“heroku certs:add ca-bundle.pem server.key”,我得到了这个错误

No certificate given is a domain name certificate
4

1 回答 1

9

适合安装在 heroku 上的 pem 编码证书链应按顺序包括:站点、中间证书,然后是根 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 添加证书。

于 2013-07-20T03:38:10.760 回答