2015-02-24 65 views
1

在使用java 1.7的Linux Centos系統上,使用keystore.jks中別名爲xyz123的密鑰和cacerts.jks中具有相同別名的不同密鑰是否可以使用?或者,會有什麼突破?相同的別名keystore和cacerts之間的不同密鑰確定嗎?或者,如何在keystore/cacerts之間導出/導入密鑰?

keytool -keysize 2048 -genkey -alias xyz123 -keyalg RSA 
-dname "CN=mydomain.com,OU=GF,O=MyCorp, 
L=MyCity,ST=MyState,C=US" -validity 7300 -keypass 
mypwd -storepass mypwd -keystore keystore.jks 

我使用刪除與別名keystore.jks文件「XYZ123」(因爲它是1024位)鍵,然後創建了別名「XYZ123」一個新的密鑰(2048位)密鑰庫

但現在我注意到別名xyz123(舊密鑰)也存在於cacerts.jks中。所以,現在相同的別名指向密鑰庫和cacerts之間的不同密鑰。我擔心如果我重複上面的代碼,但對於cacerts,儘管新的密鑰進入cacerts.jks,但同樣的情況仍然存在(例如,相同的別名指向密鑰庫和cacerts之間的不同密鑰)。

有沒有辦法執行上面的代碼,但包括密鑰庫和cacerts作爲行參數?

或者,我需要知道的是如何以某種方式生成密鑰作爲單獨的文件,然後如何導入到每個密鑰庫和cacerts。

回答

1

您可以使用-importkeystore選項將新生成的密鑰對導入cacerts.jks密鑰庫。

但是,cacerts.jks不應包含私鑰。它是可用於驗證其他證書的「信任錨」—證書的集合。我會建議exporting只有從keystore.jks和importing到cacerts.jks的新證書,而不是完整的密鑰對。

+0

謝謝@erickson,你能解釋一些關於'條目被枚舉和他們的別名被忽略'的含義嗎? – user46688 2015-02-24 17:20:35

+0

沒關係,你改變了你的問題,所以我改變了我的答案,以適應。 – erickson 2015-02-24 17:22:14

+0

要導出/導入,我可以使用如下所示:'keytool -export -alias xyz123 -file xyz123.cer -keystore keystore.jks -storepass mypwd' then keytool -import -alias xyz123 -file xyz123.cer -keystore cacerts.jks -storepass mypwd'? – user46688 2015-02-24 17:24:17

相關問題