2011-12-27 134 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”。我运行了我在这里输入的命令,以导入证书。我希望你已经解决了你的问题。