48

我有一个没有密码的 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

4 回答 4

93

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

您可以在不需要密码的情况下列出密钥(即使它会提示您),因此不要认为它是空白的。

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

于 2015-09-03T08:54:50.943 回答
39

将 -storepass 添加到 keytool 参数。

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

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

$JAVA_HOME/bin/keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts
于 2013-02-26T16:14:06.263 回答
1

在我的系统上,密码是“changeit”。如果我按回车键,则在空白处,它会抱怨密码短。希望这可以帮助

在此处输入图像描述

于 2020-01-29T16:51:19.477 回答
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)
于 2021-02-10T17:37:24.817 回答