如何在密钥库中更改密钥的别名?

95

我使用别名为 MemorizEasy 的密钥对我的 JWS 应用程序 MemorizEasy 进行了签名:

memofile.reference.emma.jar=/Users/simpatico/.netbeans/6.8/modules/ext/emma.jar

我不记得为什么选择了这么长的别名。我怀疑这只是备忘,但在我的项目设置中有:

jnlp.signjar.alias=memofile.reference.emma.jar=/Users/simpatico/.netbeans/6.8/modules/ext/emma.jar

我现在正在更新应用程序,使用Maven时需要指定别名:

<keystorealias>memofile.reference.emma.jar=/Users/simpatico/.netbeans/6.8/modules/ext/emma.jar
</keystorealias>

但那样做不起作用。使用另一个别名为mjee的键则可以工作。

那么我能改变密钥的别名吗?如果可以,怎么做? 否则,为什么Maven不接受我的别名?

1个回答

208

可以使用keytoolkeyclone命令在密钥库中复制密钥:

keytool -keyclone -alias "your-very-very-long-alias" -dest "new-alias" -keypass keypass -new new_keypass -keystore /path/to/keystore -storepass storepass

changealias 命令用于更改现有条目的别名:

keytool -changealias -alias "your-very-very-long-alias" -destalias "new-alias" -keypass keypass -keystore /path/to/keystore -storepass storepass

如果想要提示输入密码,只需删除相应的密码标志(例如changealias示例):

keytool -changealias -alias "your-very-very-long-alias" -destalias "new-alias" -keystore "/path/to/keystore"

2
keytool 错误:java.security.UnrecoverableKeyException:无法恢复密钥我收到了上面的消息.. 有什么建议吗? - Foo
很难说。也许您的密钥库文件已被篡改。还有其他的异常信息可以给我们一个想法吗? - Jcs
4
我发现这种方式比较“简单”,因为你不需要直接输入密码,而是在命令后会提示你输入密码:keytool -changealias -keystore my_keystore.jks -alias OLD_ALIAS -destalias NEW_ALIAS。 - Vic Torious
1
我能够在Windows 10上运行keytool,通过在bash/Windows子系统中运行它。 - Jon
Java有Keytool,不需要参考Bash...只要将%JAVA_HOME%\bin添加到您的PATH中,就可以从cmd中运行它。首先使用where keytool进行双重检查。 - WesternGun
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接