Keystore сменить пароли


267

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

1) Измените пароль, чтобы я мог поделиться им с другими и позволить им подписать
2) Создайте другой пароль и разрешите им подписывать его.

Это возможно? и - если да - как?

Ответы:


489

Keystore имеет только один пароль. Вы можете изменить его, используя keytool:

keytool -storepasswd -keystore my.keystore

Чтобы изменить пароль ключа:

keytool -keypasswd  -alias <key_name> -keystore my.keystore

6
Отлично, значит подпись apk будет такой же? Просто пароль изменится? Это то, что мне тоже нужно. Выбрал неверный пароль, теперь нужно его поменять.
Мэтью Руди

6
Подпись не изменится, так как приложение НЕ подписано с хранилищем ключей, но с сертификатом, который вы храните в хранилище ключей.
Марцин Орловский

keyName - это имя псевдонима, например. -alias Dipu
ılǝ

18
Чтобы удалить пароль для ключа, нужно установить тот же пароль, что и для хранилища ключей, это может быть полезно для кого-то ;-)
Betlista

Это относится и к .jks? Мой склад ключей - это .jks, сгенерированный Android Studio

81

[Как я могу] Изменить пароль, чтобы я мог поделиться им с другими и позволить им подписать

Используя keytool:

keytool -storepasswd -keystore /path/to/keystore
Enter keystore password:  changeit
New keystore password:  new-password
Re-enter new keystore password:  new-password

это также меняет пароль для ключа внутри?
over_optimistic

4
Нет. Keystore - это одно, а пароли (примечание во множественном числе) - это другое. Используйте keytool -keypasswd -alias <KeyName> -keystore my.keystoreдля изменения пароля закрытого ключа<KeyName>
Marcin Orlowski

5
после ввода passtore store pass -changeit выдает ошибку keytool error: java.io.IOException: подделка хранилища ключей или неверный пароль
Dilip

@ Дипу, я получаю ту же ошибку. Вам удалось решить это
JiteshW

Вы можете проверить, что пароль был изменен (если у вас есть сомнения), снова выполнив ту же самую команду. После того, как он запросит существующий пароль, если вы введете неправильный пароль, он скажет, что вы ввели неправильный пароль или файл был подделан и отменен.
ArtOfWarfare

48

Изменение пароля хранилища ключей

$ keytool -storepasswd -keystore keystorename
Enter keystore password:  <old password>
New keystore password: <new password>
Re-enter new keystore password: <new password>

Изменение пароля псевдонима хранилища ключей

$keytool -keypasswd -keystore keystorename -alias aliasname
Enter keystore password:  
New key password for <aliasname>: 
Re-enter new key password for <aliasname>:

Примечание:

**Keystorename**: name of your keystore(with path if you are indifferent folder) 
**aliasname**: alias name you used when creating (if name has space you can use \) 
for example: $keytool -keypasswd -keystore keystorename -alias stop\ watch

1
Это работает, спасибо! Еще одну вещь, которую я хочу добавить, чтобы изменить псевдоним, который я хотел получить на форуме. Keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name
скуловой Panchal

При изменении пароля псевдонима я получаю: UnrecoverableKeyException: Невозможно восстановить ключ. Есть предложения?
Foo

@ Фу, ты когда-нибудь выяснял эту проблему? Я получаю ту же ошибку
Райан Ньюман

3
Изменение пароля псевдонима хранилища ключей, что бы вы ни показывали, не работает, он не будет запрашивать пароль нового ключа для <псевдонима>. Он запрашивает существующий пароль для <псевдонима>, который в этом случае неизвестен.
Шиварадж Патил

Я все еще получаю Не могу восстановить ключ на шаге: Новый пароль ключа для <псевдонима>: Есть идеи? Я только что создал ключ в Android Studio, загрузил, понял, что мне нужно что-то обновить, и теперь он не работает: /
Dewald Els

22

Чтобы изменить пароль для ключа myaliasвнутри хранилища ключей mykeyfile:

keytool -keystore mykeyfile -keypasswd -alias myalias

Что такое "внутренний ключ"?
Игорь Ганапольский

5
Извините за мое плохое объяснение. Вы можете изменить пароль хранилища ключей или пароль одного из ключей, которые вы сохранили в хранилище ключей. Вот что я имею в виду под «внутренним ключом».
OriolJ

9

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

keytool -importkeystore  -srckeystore mystore.jck -destkeystore myotherstore.jks -srcstoretype jceks
-deststoretype jks -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey
-destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass

7

Здесь так много ответов, но если вы пытаетесь изменить пароль jks на Mac в Android Studio. Вот самые легкие шаги, которые я мог найти

1) Откройте терминал и перейдите к тому месту, где находится ваш .jks

2) keytool -storepasswd -новый NEWPASSWORD -keystore YOURKEYSTORE.jks

3) введите свой текущий пароль


5

KeyStore Explorer - это замена графического интерфейса с открытым исходным кодом для утилит командной строки Java keytool и jarsigner. KeyStore Explorer представляет их функциональность и многое другое через интуитивно понятный графический интерфейс пользователя.

  1. Откройте существующий KeyStore
  2. Сервис -> Установить пароль KeyStore

лучшее решение! Лучше, чем писать в терминал. Используя это программное обеспечение - я смог изменить пароли и добавить новые пары ключей. Настоятельно рекомендую
Дан Алботяну

4

Для полного программного изменения (например, установить программу) и без запроса

#!/bin/bash -eu

NEWPASSWORD=${1}
OLDPASSWORD=${2}

keytool -storepasswd -new "${NEWPASSWORD}" \
  -storepass "${OLDPASSWORD}" \
  -keystore /path/to/keystore

Полное раскрытие: я НЕ рекомендую запускать эту командную строку в оболочке, так как старый и новый пароли будут сохранены в истории оболочки и будут видны в консоли.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.