it-swarm.com.ru

Измените пароль хранилища ключей с без пароля на непустой пароль

У меня есть хранилище ключей JKS без пароля. Когда я запускаю команду

keytool -list -keystore mykeystore.jks

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

Обратите внимание, что пароль хранилища ключей IS НЕ используется по умолчанию Java пароль 'changeit'. Он пуст

Когда я пытаюсь бежать

keytool -storepasswd -keystore mykeystore.jks

изменить пароль на непустую строку. Это сначала запрашивает у меня текущий пароль. Просто нажмите Enter, так как он пуст

keytool -storepasswd -keystore mykeystore.jks
Enter keystore password:
Keystore password is too short - must be at least 6 characters 

Просто чтобы подтвердить всем, что пароль не "изменить"

keytool -storepasswd -keystore mykeystore.jks
Enter keystore password:  changeit
keytool error: Java.io.IOException: Keystore was tampered with, or password was incorrect

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

38
Matthew Kirkley

Добавьте -storepass к аргументам keytool.

keytool -storepasswd -storepass '' -keystore mykeystore.jks

Но также обратите внимание, что команда -list не всегда требует пароль. Я мог выполнить команду следования в обоих случаях: без пароля или с действительным паролем

$Java_HOME/bin/keytool -list -keystore $Java_HOME/jre/lib/security/cacerts
28
ijrandom

Если вы пытаетесь что-то сделать с Java хранилищем системных ключей по умолчанию (cacerts), то пароль по умолчанию - changeit.

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

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

59
Timmmm