Keytool -genkey error: Файл Keystore не существует

Я пытаюсь создать новый самонастраиваемый файл хранилища ключей

Используемая мной команда:

keytool -genkey -selfcert -dname "cn=My Name, ou=Orga unit" -alias selfcertified -keypass somepass -keystore keystore.jks -storepass anotherpass -validity 365

но я всегда получаю эту досадную ошибку:

keytool error: java.lang.Exception: Keystore file does not exist: keystore.jks

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

Ответ 1

Создание пары ключей (и нового хранилища ключей) должно выполняться как отдельная операция для создания самозаверяющего сертификата для этого ключа.

то есть.

keytool -genkey -alias myKey -keystore store.jks
keytool -selfcert -alias myKey -keystore store.jks

Ответ 2

Запустите командную строку как администратор, и она будет выполнена.

Ответ 3

Параметр

-selfcert был устаревшим в keytool для Java 6. Проверьте последний раздел "Изменения" здесь: Java 6 Keytool

Итак, для Java 6 и далее замените -selfcert на -certreq

Ответ 4

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

keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

тогда беги

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v 

Ответ 5

Кажется, старая ссылка, но это то, что я пытался - надеюсь, это кому-то поможет. В моем случае, поскольку файл .keystore отсутствовал в указанном ниже месте, я выполнил следующую команду; keytool -genkey -alias mykey -keystore "C:\Users\username.keystore" Это создает файл .keystore в месте, система запрашивает у вас информацию, такую как Ваше имя и фамилия? Как называется ваша организационная единица? Как называется ваша организация? Как называется ваш город или населенный пункт? Как называется ваш штат или провинция? Что такое двухбуквенный код страны для данного устройства? Правильно ли указано CN = XXX, OU = XXX, O = XXX, L = XXX, ST = XXX, C = IN?

Скажите "Да", и хранилище ключей будет создано.