2016-08-24 134 views
0

我有一個很有可能是pfx格式的私鑰(不是很祕密)。我需要將其轉換爲pem格式,才能在簽名中使用它。將pfx格式的私鑰轉換爲pem格式

關鍵在於一行。它沒有單獨的開始和結束行。這是一行,base64編碼,2284個字母長(比我之前見過的普通x.509更長)。我與其他一些變量,以及包括了它:

種子 ID 兼容性

我能看到它是如何創建的。它首先創建一個

java.security.cert.X509Certificate

那麼這是通過函數導出到一個PFX格式創建。

在函數內部,我看到提到的密鑰庫實例「PKCS12」。 也看到ByteArrayOutputStream。

任何想法如何我可以將這一個襯裏base64編碼私鑰轉換爲pem格式?該格式應該被我用於簽名的節點模塊xmlCrypto所接受。目前xmlCrypto給出了關鍵以下警告:

Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

回答

0

之所以能夠解決這個問題。問題是,該文件不是純粹的pfx格式。但它是以base64編碼格式。爲了在openssl工具的幫助下將其轉換爲pem格式,首先必須將該文件解碼爲其原始的.pfx格式。並且不要使用在線解碼器。有了Linux,你可以像下面對其進行解碼:

echo <the encoded pfx content> | base64 --decode > decoded-pfx-filename.pfx 

之後,你可以使用OpenSSL:

openssl pkcs12 -in decoded-pfx-filename.pfx -out cert-and-privkey-in-pem.pem -nodes 

然後就大功告成了