2012-09-14 63 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文件 。

相关问题