2017-07-27 65 views
0

一個新的.pem我有以下文件Cert.pem,Key.pem,CACert.pemWindows中,OpenSSL的生成key.pem和cert.pem

有人告訴我,我需要將其解密。質子交換膜。 1)什麼是Windows OpenSSL命令來做到這一點?

我需要將解密後的key.pem文件與cert.pem文件結合起來,以產生一個新的cert.pem文件。 2)什麼是Windows OpenSSL命令來做到這一點?

感謝

的OpenSSL
+0

這是關於編程和開發。我需要爲我的Java密鑰庫生成一個密鑰。安全是發展的重要組成部分。 –

回答

0

Unix安裝應包括手冊頁,但Windows版本往往沒有,因爲Windows通常沒有找到並顯示它們的任何方式。 目前支持版本的手冊頁,另外還有開發主管'master',可在OpenSSL網站https://www.openssl.org/docs/manpages.html上找到。所有OpenSSL的「命令」實際上是由(單)計劃openssl運行,從而通過運行

openssl pkey some args 
rem if openssl.exe is on your PATH or in the current directory, otherwise 
x:\path\to\openssl pkey some args 

你沒有提到具有用於加密的密鑰文件的密碼執行pkey some args;我希望你這樣做,因爲沒有它就無法解密(或者做其他任何事情)。

對於1.0.0以上版本,pkey是轉換私鑰的首選方式,包括加密和解密;看到它的手冊頁。簡而言之,您只需告知pkey從輸入文件中讀取並寫入輸出文件,並且省略任何規範的密碼;該遺漏將導致它編寫未加密的密鑰。 Note pkey將以PKCS8格式編寫輸出,這在大多數情況下都是首選,但如果您出於某種原因實際需要「傳統」或「傳統」格式 - 請詢問「告訴」您將使用何種軟件的文件 - 1.1.0 pkey可以做到這一點,但以前不能。 如果您堅持使用0.9.x版本,通常只在過時的系統上使用,請將pkcs8 -topk8 -nocrypt用於PCKS8輸出;看到了。

如果您需要傳統/傳統格式(在1.1.0以下版本中),您必須使用'legacy'per-algorithm命令,因此您需要知道您的密鑰(文件)的算法。看看它說-----BEGIN something PRIVATE KEY-----的第一行。如果是RSA,請使用rsa;對於DSA dsa;對於EC ec;請參閱相應頁面。如果是ENCRYPTED,則必須先將其解密爲PkCS8,然後使用asn1parse來查看它,以確定它是哪種算法,但我認爲不太可能有人想要傳統未加密密鑰的人以PKCS8加密密鑰開始。

OpenSSL不提供任何特殊操作來合併PEM文件,因爲連接多種類型的文件是一種常見操作。在Unix上,這是通過cat程序正常完成的;在Windows上,可以通過在源代碼中使用(內置)copy命令和加號來完成;在Unix和Windows可以通過創建一個文件,然後追加到它喜歡做:

copy decryptedkey.pem combined.pem 
type certificate.pem >> combined.pem 
rem >> means redirect the output from that command ('type') 
rem normally on the console to _the end of_ the named file. 

在要通過添加decryptedkey.pem的內容修改cert.pem這種情況下,所以只是做

type decryptedkey.pem >> cert.pem 

或者,您可以使用像記事本一樣的明文編輯器。打開這兩個文件;選擇第二個文件中的所有文本並複製(或剪切)並粘貼到第一個文件的末尾;保存修改後的第一個文件。

+0

所以我在Windows上安裝了openssl,並且沒有pkey命令。所以目前我有一個key.pem(加密的),我無法解密。如果沒有pkey我怎麼解密? –

+0

(更正後)@JamesRelic:如果你想要pkcs8並且你在0.9.x上,就像我寫的一樣,使用:'pkcs8 -topk8' **和-nocrypt' **(這裏不是默認值)。 –