2013-06-27 61 views
1

我按照https://devcenter.heroku.com/articles/ssl-endpoint上的說明進行操作,但生成私鑰時出現問題。它說,生成私鑰「$的openssl genrsa -des3退房手續server.pass.key 2048」,所以我打字到軌命令行生成SSL私鑰時出錯 - Heroku - OpenSSL - 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

'沒有這樣的文件或directory'似乎相當清晰。 – EJP

+0

是的,它似乎沒有生成密鑰,但我不明白爲什麼。第一階段沒有錯誤信息。 – switcher

+0

它似乎不是*找到*您指定爲*輸入的文件。* – EJP

回答

3

我認爲這個想法是要運行這些命令本地,在自己的電腦上。首先,請確保您安裝了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 
+0

就是這樣。當在openssl中生成證書時,必須插入-config「C:\ usr \ local \ GnuWin32 \ share \ openssl.cnf」,因爲我在Windows上運行 – switcher

2

檢查您的文件是否形成正確。 我改變

-----END CERTIFICATE----------BEGIN RSA PRIVATE KEY----- 

-----END CERTIFICATE----- 
-----BEGIN RSA PRIVATE KEY----- 

和錯誤消失。