2011-01-27 4 views
7

Я пытаюсь переписать несколько банок, используя знак «муравьиная задача», однако он говорит мне, что «сертификат подписчика истек».Попытка обновить «expired» keystore

Так что я попытался повторно создать хранилище ключей надеясь, что это «не-истекают» это ...

keytool -genkey -keystore mykeystore -alias myalias

, но после ввода пароля к хранилищу я получаю: «Keytool ошибки: java.lang . Исключение: пара ключей не сгенерирована, псевдоним уже существует "

что я делаю неправильно? мне нужно удалить хранилище ключей для его повторного создания или есть простой способ обновить его, чтобы он не истек?

спасибо.

+0

У меня была эта проблема, когда я создавал новое хранилище ключей, и Eclipse просто занимал много времени, чтобы сделать сборку. Мне пришлось полностью убить Eclipse и перезапустить его. На самом деле хранилище ключей было создано раньше. –

ответ

5

Вы смешиваете условия. Ключевое хранилище содержит ключи, ключ используется для подписи.

AFAIK, вы пытаетесь поместить новый ключ в старое хранилище ключей, используя существующий псевдоним (имя). Почему бы вам просто не использовать новый? Либо это, либо delete старый ключ из хранилища ключей. Вам не нужно бросать все хранилище ключей.

Посмотрите на portecle, этот простой инструмент позволяет более легко манипулировать хранилищами данных.

+1

условия смешивания? скорее всего! мне действительно не нравится документация для этой «функции» java ... будет смотреть на благодарность portecle. я думаю, что я ищу, это простой способ продлить срок действия подписи ..... – pstanton

+0

Странно. Я просто удалил файл .jks и все же ... Я получаю эту самую ошибку. Для ключевого магазина с только 1 самозаверяющим сертификатом, почему * не должен * я заменяю все это? –

+0

@ebyrob: Я не говорю, что не стоит. Делайте все, что, по вашему мнению, будет работать, а если нет, попробуйте portecle, так как это поможет вам понять проблему. В случае одного ключевого хранилища ключей я бы предложил использовать тот же надежный пароль для хранилища ключей и ключа (вы наверняка избегаете путаницы, и я действительно считаю, что нет риска для безопасности). – maaartinus

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