将密钥库密码从无密码更改为非空密码
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)
【讨论】:
以上是关于将密钥库密码从无密码更改为非空密码的主要内容,如果未能解决你的问题,请参考以下文章