2013-04-26 184 views
10

我需要一些幫助將我的.P12證書文件轉換爲JKS密鑰庫。我使用Java的keytool實用程序來跟蹤標準命令。但是,當我嘗試使用生成的JKS文件通過SOAPUI訪問WS端點時,出現403.7錯誤 - Forbidden:SSL證書是必需的。在同一端點上使用帶SOAPUI的P12文件會產生成功的響應。 下面是用於導入P12密鑰存儲到JKS密鑰庫中的標準命令 -需要幫助將P12證書轉換爲JKS

keytool -importkeystore -srckeystore src.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore target.jks 

我用openssl到P12轉換還試圖 - > PEM - > DER - > JKS:

openssl pkcs12 -in src.p12 -out src.pem -clcerts 

(編輯src.pem成兩個複合材料部件稱爲src.key和src.cer)

openssl pkcs8 -topk8 -nocrypt -in src.key -out key.der -inform PEM -outform DER 
openssl x509 -in src.cer -inform PEM -out cert.der -outform DER 

(我跑了一個實用程序來兩個鍵結合成keystore.ImportKey)

keytool -importkeystore -srckeystore keystore.ImportKey -destkeystore target.JKS 

和類似沒有骰子。

有什麼我失蹤了嗎?

回答

0

我很驚訝爲什麼沒有人回答這個問題這麼久。無論如何,將p12轉換爲jks的最簡單方法是使用Keytool。以下是您可能需要使用的命令:

keytool -importkeystore -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks 
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey 
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass 

我相信您遇到的問題可能是因爲您沒有提供Keypass。請注意,由於有時服務器無法區分keypass和storepass,因此將keypass和storepass保持一致是一種很好的做法。

0

但他被問及如何的.p12轉換爲JKS,所以答案是:

keytool -importkeystore -srckeystore mystore.p12 -destkeystore myotherstore.jks -srcstoretype PKCS12 -deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey -destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass 

就不得不用這條線,我的作品。

4

如果您有keytool應用程序,你的PKCS#12文件,啓動單行命令:

keytool -importkeystore -srckeystore [MY_FILE.p12] -srcstoretype pkcs12 
-srcalias [ALIAS_SRC] -destkeystore [MY_KEYSTORE.jks] 
-deststoretype jks -deststorepass [PASSWORD_JKS] -destalias [ALIAS_DEST] 

你需要修改這些參數:

  • MY_FILE.p12:指示指向要轉換的PKCS#12文件(.p12或.pfx擴展名)的路徑。
  • MY_KEYSTORE.jks:指向要在其中存儲證書的密鑰庫的路徑。如果它不存在,它將自動創建。
  • PASSWORD_JKS:將在密鑰庫開放時請求的密碼。
  • ALIAS_SRC:名稱與PKCS#12文件中的證書條目匹配,例如「tomcat」。

如果您要從Windows服務器導出生成.PFX文件的證書,則必須檢索由Windows創建的「別名」名稱。要做到這一點,你可以執行以下命令:

keytool -v -list -storetype pkcs12 -keystore FILE_PFX 

在那裏,「別名」字段表示你需要在命令行中使用證書的存儲名稱。

  • ALIAS_DEST:將在JKS密鑰庫中匹配您的證書條目的名稱,例如「tomcat」。