2011-01-27 22 views
7

Estoy intentando volver a firmar algunos archivos utilizando la tarea ant 'signar', pero me dice "El certificado del firmante ha expirado".Intentando actualizar el almacén de claves 'caducado'

así que traté de volver a generar el almacén de claves esperando que esto 'no-expirará' se ...

keytool -genkey -keystore mykeystore -alias myalias

pero después de introducir la contraseña del almacén me sale: "Error de herramienta de claves: java.lang .Exception: par de claves no generado, alias ya existe "

¿Qué estoy haciendo mal? ¿Necesito eliminar el almacén de claves para volver a generarlo o hay una forma simple de actualizarlo para que no caduque?

gracias.

+0

Tuve este problema cuando estaba creando un nuevo almacén de claves, y Eclipse solo tardó mucho tiempo en realizar la compilación. Tuve que matar completamente a Eclipse y relanzarlo. El almacén de claves en realidad se generó antes. –

Respuesta

5

Estás mezclando los términos. Un keystore contiene claves, una clave es algo que se usa para firmar.

AFAIK, está intentando colocar una nueva clave en un almacén de claves antiguo utilizando un alias (nombre) existente. ¿Por qué no simplemente usaste uno nuevo? O esto o delete primero la clave anterior del almacén de claves. No necesita dejar todo el almacén de claves.

Eche un vistazo a portecle, esta herramienta simple le permite manipular el almacén de claves más fácilmente.

+1

mezcla de términos? ¡muy probable! Realmente no me gusta la documentación para esta 'función' de Java ... echaremos un vistazo a gracias de portecle. Supongo que lo que estoy buscando es una forma simple de extender el vencimiento de una firma ..... – pstanton

+0

Extraño. Acabo de eliminar mi archivo .jks y, sin embargo ... Recibo el mismo error. Para una tienda clave con solo 1 certificado autofirmado, ¿por qué * no debería * reemplazar todo? –

+0

@ebyrob: No estoy diciendo que no deberías. Haz lo que creas que funcionará y si no funciona, prueba portecle ya que puede ayudarte a comprender el problema. En el caso de un único almacén de claves, sugiero utilizar la misma contraseña segura para el almacén de claves y la clave (seguramente evitará confusiones y realmente creo que no hay riesgos de seguridad). – maaartinus

2

Para esto simplemente vuelva a generar su certificado nuevamente siga estos pasos.

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 :) 
Cuestiones relacionadas