2012-09-14 61 views
9

我試圖從PKCS#12文件中獲取私有RSA密鑰。從PFX(PKCS#12)文件創建RSA私鑰

我試着運行標準

openssl pkcs12 -nocerts -out priv.pem -in domain.com.pfx 

然而這會導致類似下面的密鑰文件:

Bag Attributes 
Microsoft Local Key set: <No Values> 
localKeyID: 01 00 00 00 
friendlyName: xxxxxxxx 
Microsoft CSP Name: Microsoft RSA SChannel Cryptographic Provider 
Key Attributes 
X509v3 Key Usage: 10 
-----BEGIN ENCRYPTED PRIVATE KEY----- 

,我需要把它放到canot處理密鑰服務器文件,當我看到的例子數據,我看到一個像下面的文件

-----BEGIN RSA PRIVATE KEY----- 
Proc-Type: 4,ENCRYPTED 
DEK-Info: DES-EDE3-CBC,2CF27DD60B8BB3FF 

而導致關鍵是pr在這兩個文件中都有。 但是,似乎服務器將只接受RSA私鑰文件,並且在我看來,我得到的輸出是一個X509v3文件,任何人都知道如何將其獲取到RSA私鑰文件?

+1

嘗試在* -nocerts *之後添加* -nodes *以創建未加密的私鑰 –

+0

謝謝。嘗試了這一點,但我不能從輸出pemfile中刪除密碼,這仍然使我與X509v3文件 – Dorana

回答

16

嗯 - 使用文本編輯器刪除違規行可能是最簡單的。否則,下面將清理袋屬性:

openssl pkcs12 -in x.pfx -nocerts -nodes -passin pass:123456 | openssl rsa -out privkey.pem 

,也可以用來獲取DER /淨

openssl pkcs12 -in x-fred.p12 -nocerts -nodes -passin pass: | openssl rsa -outform DER -out privkey.der 

這可能是其實你想要的格式。儘管工具不接受密碼或私鑰,但是相當普遍(如果字符數不少於4或6,很多工具會默默地失敗)。因此,在這種情況下更改尾端到:

.... | openssl rsa -passout pass:123456 -out privkey.pem 
.... | openssl rsa -passout pass:123456 -out privkey.der -outform der 
0

在64位Windows 7,你可以簡單地使用你的command.But在Mac和Linux,你應該做以下步驟:

1,創建您的PEM文件:
OpenSSL的PKCS12 -in xxx.pfx退房手續xxx.pem

2,創建RSA私鑰:
OpenSSL的PKCS12 -in xxx.pfx -passin通:你的密碼| OpenSSL的RSA -des3 -passout傳:yourpassowrd退房手續xxx.key

這一步將創建一個conten密鑰文件:」 ----- BEGIN RSA私鑰----- PROC型: 4,加密 DEK-信息:DES-EDE3-CBC,2CF27DD60B8BB3FF 「

3,在文本編輯器打開你的.pem和.key文件,並替換原點鍵」 ----- BEGIN加密的私有KEY -----「,在.key文件中使用rsa鍵.pem文件 。

相關問題