将密钥库密码从无密码更改为非空密码

时间:2013-02-26 15:50:35

标签: java ssl openssl keytool

我有一个没有密码的jks密钥库。当我运行命令

keytool -list -keystore mykeystore.jks

它提示我输入密钥库密码,我只需点击“输入”。

请注意,密钥库密码不是'changeit'的默认java密码。这是空白的

当我尝试运行时

keytool -storepasswd -keystore mykeystore.jks

将密码更改为非空字符串。它第一次提示我输入当前密码。只需点击输入,因为它是空白的

keytool -storepasswd -keystore mykeystore.jks
Enter keystore password:
Keystore password is too short - must be at least 6 characters 

与大家确认密码不是'changeit'

keytool -storepasswd -keystore mykeystore.jks
Enter keystore password:  changeit
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

如果现有密码为空,我知道如何更改密钥库密码吗?

4 个答案:

答案 0 :(得分:49)

如果您尝试使用Java默认系统密钥库(cacerts),则默认密码为changeit

您可以在不需要密码的情况下列出密钥(即使它提示您),所以不要将其作为空白的指示。

(顺便说一下,Java历史上曾经更改过默认密钥库密码?他们应该把它留空。)

答案 1 :(得分:27)

将-storepass添加到keytool参数。

keytool -storepasswd -storepass '' -keystore mykeystore.jks

但是请注意,-list命令并不总是需要密码。我可以在两种情况下执行follow命令:无密码或有效密码

$JAVA_HOME/bin/keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts

答案 2 :(得分:1)

在我的系统上,密码为“ changeit”。如果我按Enter键,则为空白,然后抱怨密码短。希望对您有帮助

enter image description here

答案 3 :(得分:0)

这种方式更适合我:

echo y | keytool -storepasswd -storepass 123456 -keystore /tmp/IT-Root-CA.keystore -import -alias IT-Root-CA -file /etc/pki/ca-trust/source/anchors/IT-Root-CA.crt

机器运行:

[root@rhel80-68]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.1 (Ootpa)