2011-08-22 35 views
4

我有一個.pk8文件,我想將其轉換爲.key文件格式,以便我可以將它們移動到pkcs12存儲中,然後再移動到使用keytool的java密鑰存儲中。將.pk8文件轉換爲.key文件

請提出可能的解決方案?

回答

1

使用OpenSSL命令行工具來您的PKCS#8的文件轉換爲純私鑰第一:

openssl pkcs8 -in file.pk8 -out key.pem 

如果給你這可能是因爲關鍵是DER格式的錯誤,試試這個再:

openssl pkcs8 -in file.pk8 -inform DER -out key.pem 

猜你想要在你的PKCS#12密鑰存儲的證書,並確保它們是PEM編碼(在文本編輯器打開他們 - 如果該文件開頭「----- BEGIN X.509 CERTIFICATE -----「或類似的話你已經很好走了):

openssl x509 -in single_cert.cer -inform DER -out single_cert.pem 

打開文本編輯器並粘貼所有PEM編碼證書 key.pem的內容,在該文件中,一前一後得到這樣的文件:

----- BEGIN RSA PRIVATEKEY ----- '' or another format, depends on your key 
...contents of your key file 
----- END RSA PRIVATEKEY ----- 
----- BEGIN X.509 CERTIFICATE ----- 
...contents of certificate 1 
----- END X.509 CERTIFICATE ----- 
----- BEGIN X.509 CERTIFICATE ----- 
...contents of certificate 2 
----- END X.509 CERTIFICATE ----- 
... 

保存這,例如作爲all.pem。要最終創建PKCS#12密鑰存儲區,請發出以下命令:

openssl pkcs12 -export -in all.pem -out file.p12 -name "somename" 

提供密碼並完成。 name參數將成爲Java世界中的「別名」。

+0

我在執行第一個pk8到pem轉換例程時出現以下錯誤。錯誤 - >錯誤閱讀密鑰期望加密私鑰... pkcs8中的錯誤 – neeraj

+1

聽起來像PKCS#8密鑰未加密 - 嘗試添加'-nocrypt'參數。 – emboss

+0

與第二個ie ie openssl pkcs8 -in file.pk8 -inform DER -out key.pem我收到以下錯誤Error->錯誤讀取關鍵asn1編碼例程:ASN1_CHECK_TLEN:錯誤標記,ASN1_ITEM_EX_D2I,pkcs8中ASN1_TEMPLETE_NOEXP_D2I錯誤謝謝 – neeraj