2011-01-27 35 views
7

我想重新签署一些使用蚂蚁任务'signjar'的瓶子,但它告诉我“签名者证书已过期。”试图刷新'过期'密钥库

于是,我就重新生成密钥库希望这会“未过期”这......

keytool -genkey -keystore mykeystore -alias myalias

但是在进入存储密码,我收到后:“keytool的错误:java.lang中.Exception:密钥对未生成,别名已存在“

我在做什么错?我是否需要删除密钥库来重新生成密钥库或者是否有一种简单的方法来刷新它,以便它不会过期?

谢谢。

+0

我在创建新密钥库时遇到了这个问题,而且Eclipse只花了很长时间才能构建。我不得不彻底杀死Eclipse并重新启动它。密钥库实际上是以前生成的。 – 2013-11-06 15:44:55

回答

5

你在混淆这些条款。密钥库包含密钥,密钥用于签名。您正尝试使用现有别名(名称)将新密钥放入旧密钥库中。你为什么不简单地使用一个新的?要么是这个密钥库的旧密钥或delete。您不需要删除整个密钥库。

看看portecle,这个简单的工具可以让你更容易地操纵密钥库。

+1

混合条件?很可能!我真的不喜欢java的这个'功能'的文档...会看看portecle谢谢。我想我正在寻找的是一个简单的方法来延长签名到期..... – pstanton 2011-01-28 02:25:32

2

为此只需重新生成证书,请按照以下步骤操作。

1)keytool -genkey -v -keystore mycertificate.keystore -alias mykey -keyalg 
    RSA -keysize 2048 -validity 1000 
    2) jarsigner -verbose -keystore mycertificate.keystore D:\app.apk mykey 
    3) jarsigner -verify app.apk 
    If it will have done then shows a message "successfully verified" 
    4) zipalign -v 4 D:\app.apk D:\signedapp.apk 

    it will generate new certificate. enjoy :)