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

Posted

技术标签:

【中文标题】将密钥库密码从无密码更改为非空密码【英文标题】:Change keystore password from no password to a non blank password 【发布时间】:2013-02-12 03:49:12 【问题描述】:

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

keytool -list -keystore mykeystore.jks

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

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

当我尝试运行时

keytool -storepasswd -keystore mykeystore.jks

将密码更改为非空白字符串。它首先提示我输入当前密码。由于它是空白的,因此只需按 Enter 即可

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

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

【问题讨论】:

【参考方案1】:

将 -storepass 添加到 keytool 参数。

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

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

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

【讨论】:

感谢您的回复。密码确实不是空的!我不知道不需要密码的 -list 命令。 这对我不起作用 'keytool -storepasswd -storepass '' -keystore mykeystore.jks' = keytool error: java.io.IOException: Keystore was tampered with or password is wrong @theMarceloR 您的密码实际上可能不是空白的。 @theMarceloR 和其他任何人 - 在 Windows 命令行上使用“”(双引号)作为空字符串而不是单引号。【参考方案2】:

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

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

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

【讨论】:

“您可以列出密钥而不需要密码”拯救了我的一天 :) 我发现我们总是可以从任何 keystore 文件中读取 Certificate Entry 而无需输入 keystore 密码 当我输入空白时,列表有效,但当我输入 changeit 时无效,让我想到提示问我的是什么 我爱你!!!你救了我【参考方案3】:

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

【讨论】:

【参考方案4】:

这种方式对我来说效果更好:

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)

【讨论】:

以上是关于将密钥库密码从无密码更改为非空密码的主要内容,如果未能解决你的问题,请参考以下文章

html 将字段类型更改为密码(如果它没有标签密码)

postgres 9.3 windows的空密码登录失败

如何进入不受密码保护的 Java 密钥库或更改密码?

密钥库被篡改或密码不正确?

Expo - 丢失的密钥库密码

在焦点 jquery 上将占位符输入类型文本更改为密码