2011-12-27 127 views
104

我試圖導入一個可信任的證書到Java cacerts keystore,但我遇到了問題。我試圖列出現有的可信證書,看起來密鑰庫沒有密碼保護。如何進入無密碼保護的Java密鑰庫或更改密碼?

$ keytool -list -keystore cacerts 
Enter keystore password: 

***************** WARNING WARNING WARNING ***************** 
* The integrity of the information stored in your keystore * 
* has NOT been verified! In order to verify its integrity, * 
* you must provide your keystore password.     * 
***************** WARNING WARNING WARNING ***************** 

Keystore type: JKS 
Keystore provider: SUN 

Your keystore contains 76 entries 

我試圖導入一個受信任的證書:

$ keytool -importcert -alias "JiraCert" -file /root/c9ssl.crt -keystore /etc/java-6-sun/security/cacerts 
Enter keystore password: 
Keystore password is too short - must be at least 6 characters 
Enter keystore password: 
Keystore password is too short - must be at least 6 characters 
Enter keystore password: 
Keystore password is too short - must be at least 6 characters 
Too many failures - try later 

我也試圖從 「無」 更改密碼的東西:

$ keytool -storepasswd -keystore cacerts.back 
Enter keystore password: 
Keystore password is too short - must be at least 6 characters 
Enter keystore password: 
Keystore password is too short - must be at least 6 characters 
Enter keystore password: 
Keystore password is too short - must be at least 6 characters 
Too many failures - try later 

回答

186

這意味着cacerts的密鑰庫沒有密碼保護

這是一個錯誤的假設。如果仔細閱讀,您會發現提供商品清單時沒有驗證密鑰庫的完整性,因爲您沒有提供密碼。該列表不需要密碼,但您的密鑰庫肯定有密碼,如下所示:

爲了驗證其完整性,您必須提供密鑰庫密碼。

Java的默認cacerts密碼是「changeit」,除非你在Mac上,它的「changeme」直到某個點。顯然,如同Mountain Lion(基於評論和另一個答案),Mac的密碼現在也是「changeit」,可能是因爲Oracle現在也在處理Mac JVM的分發。

+0

謝謝!我無法弄清楚爲什麼密碼是! – 2012-05-24 16:22:30

+2

是的,謝謝。多麼可怕的默認密碼。我無法弄清楚它是什麼。我剛剛刪除了cacerts文件,並用我自己的文件替換了它。 – HeyWatchThis 2012-08-15 23:37:52

+3

正如datasmid所述,如果您正在運行Mountain Lion,Mac密碼也是「changeit」 – Niro 2013-04-16 16:40:16

3

Mac Mountain Lion現在使用Oracle的密碼相同。

43

默認情況下,密鑰庫的密碼是:「changeit」。我運行了我在這裏輸入的命令,以導入證書。我希望你已經解決了你的問題。