2016-09-09 159 views
2

我想在java中使用keytool導入PKCS12證書。只有密鑰庫密碼與證書密碼相同時,它才能正常工作。密鑰庫也必須使用PKCS12證書密碼嗎?密鑰庫密碼是否應與PKCS12證書密碼相同?

+0

當密鑰庫和證書密碼不匹配時,您會看到什麼錯誤? – Leon

+0

沒有明確的錯誤拋出。證書得到安裝,但我的應用程序不會出現。 – user5478656

回答

4

documentation of keytool(有關這個問題的唯一選項列出):

密鑰工具-importkeystore [-srcstorepasssrcstorepass] [-deststorepassdeststorepass] {- srcaliassrcalias {-destalias個destalias} [-srckeypasssrckeypass]} [-destkeypassdestkeypass] ...

導入到 目的地密鑰庫中的單個條目或所有條目從源密鑰庫。

當提供-srcalias選項時,該命令將別名標識的單個條目導入到目標密鑰庫。 [...]如果源條目受密碼 保護,則使用srckeypass恢復條目。如果沒有提供srckeypass ,則keytool命令會嘗試使用srcstorepass 來恢復條目。如果srcstorepass未提供,或者 不正確,則將提示用戶輸入密碼。目的地 條目受destkeypass保護。如果沒有提供destkeypass,則 那麼目的地條目受到源條目 密碼的保護。 例如,大多數第三方工具需要Storepass用於 關鍵通過在PKCS#12密鑰庫是相同的。爲了爲這些工具創建一個 PKCS#12密鑰存儲,總是將-destkeypass指定爲 與-deststorepass相同。

如果不提供-srcalias選項,然後在源 密鑰庫中的所有條目被導入到目的地密鑰庫。 [...]如果源條目 受密碼保護,則srcstorepass用於 以恢復條目。如果srcstorepass未提供,或者 不正確,則將提示用戶輸入密碼。 [...]目標條目是 受源輸入密碼保護。

因此,是否強制使用密鑰庫的PKCS12證書密碼取決於將嘗試讀取密鑰庫的應用程序。

0

如果您依賴Java系統屬性來通知JSSE密鑰庫,則沒有用於指定特定密鑰別名或密碼的屬性。在這種情況下,您別無選擇,只能使密碼保持不變。