我正在按照https://devcenter.heroku.com/articles/ssl-endpoint上的说明操作,但却无法生成私钥。它说生成私钥'$ openssl genrsa -des3 -out server.pass.key 2048'所以我输入rails命令行
$ heroku run openssl genrsa -des3 -out server.pass.key 2048
这似乎有效,我可以输入两次密码短语(但没有确认消息)
下一步是键入以下“$ openssl rsa -in server.pass.key -out server.key” - 以便可以删除私钥的密码。所以:
$ heroku run openssl rsa -in server.pass.key -out server.key
But here I get the following error:
Error opening Private key server.pass.key
2:error:02001002:system library:fopen no such file or directory:bss_file.c:356:f
open('server.pass.key','r')
2:error:20074002:BIO routines:FILE CTRL:system lib:bss_file.c:358:
Unable to load private key
有什么想法吗?感谢。
(顺便说一下,我已经在应用程序上启用了站点范围的SSL,使用了heroku的证书。我正在尝试为自己的域名更改为自己的SSL证书。)
答案 0 :(得分:6)
我认为我们的想法是在您自己的计算机上运行 local 命令。首先,确保已安装openssl
(如果不安装,请按照提供的Heroku帮助页面上的说明操作,或使用安装了它的朋友的计算机)。然后,输入:
$ openssl genrsa -des3 -out server.pass.key 2048
Generating RSA private key, 2048 bit long modulus
........................................................................................+++
..........+++
e is 65537 (0x10001)
Enter pass phrase for server.pass.key:
Verifying - Enter pass phrase for server.pass.key:
在此步骤之后,当前目录中应该有一个名为server.pass.key
的文件:
$ ls
server.pass.key
然后,运行第二个命令:
$ openssl rsa -in server.pass.key -out server.key
Enter pass phrase for server.pass.key:
writing RSA key
完成此步骤后,目录中应该有两个文件。然后,按照说明中的说法继续。
$ ls
server.key server.pass.key
答案 1 :(得分:2)
检查您的文件是否正确形成。 我改变了
-----END CERTIFICATE----------BEGIN RSA PRIVATE KEY-----
进入
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
并且错误消失了。