помилка клавіатури Keystore була зламана, або пароль був неправильним


191

Під час створення сертифікатів на моїй локальній машині я отримую наступну помилку.

C:\Users\abc>keytool -genkey -alias tomcat -keyalg RSA
Enter keystore password:
keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect

Я думаю, що в jdk версії є деякі проблеми. Я запустив ту саму команду на моїй машині колег, і вона працює чудово.

Будь ласка, поділіться своїми даними.


1
Ви даєте правильний пароль? і запустити команду з власного каталогу?
dev2d

1
Коли я його створюю, тож я ввожу новий пароль. З якого каталогу я повинен запустити його?
C4CodeE4Exe

keytool -genkeypair -alias tomcat -keyalg RSA -keystore D: \ keystore.jks спробуйте це створити сховище ключів, а потім експортуйте cer, як keytool -export -alias mycert -keystore D: \ keystore.jks
-file

Чи можете ви, будь ласка, уточнили, чи матиме він такий же ефект, як і у "keytool -genkey -alias tomcat -keyalg RSA".
C4CodeE4Exe

чи можете ви сказати мені мету створення цієї церкви?
dev2d

Відповіді:


89

З вашого опису я припускаю, що ви знаходитесь на машині Windows, і ваш будинок є abc

Тож тепер: Причина

При запуску цієї команди

keytool -genkey -alias tomcat -keyalg RSA

оскільки ви не вказуєте явного сховища ключів, він спробує створити (і у вашому випадку, коли ви отримуєте виняток, щоб оновити) keystore, C:\users\abc>.keystoreі, звичайно, вам потрібно надати старий пароль для .keystore, хоча я вважаю, що ви надаєте свою версію (a новий).

Рішення

  1. Видаліть .keystoreіз C:\users\abc>місця та спробуйте команду

  2. або спробуйте виконати наступну команду, яка створить новий xyzkeystore:

    keytool -genkey -keystore xyzkeystore -alias tomcat -keyalg RSA

Примітка: -genkey зараз стара, скоріше використовуйте, -genkeypairяк обидві роботи однаково.


Хоча я і зрозумів це самостійно. "Видаліть .keystore з місця C: \ users \ abc> і спробуйте команду" - це правильне рішення.
C4CodeE4Exe

чи можна доставити пропуск брелока в аргументах?
користувач1767754

2
Я видалив існуючий файл зберігання ключів, а потім слідував команді keytool -genkey -alias key0-keyalg RSA, потім він запитує у мене новий пароль та інші дані, які я дав. Але все ж зараз, коли я намагаюся створити підписаний apk, воно відображає те саме повідомлення про помилку - "Keystore було підроблено, або пароль був неправильним" У чому тут проблема?

266

Я вирішив це, використовуючи пароль за замовчуванням для зберігання клавіш cacerts: 'changeit'


ха-ха .. тому насправді його не змінити пароль на новий, а працювати за замовчуванням: D
Мухаммед Сулеман

спасибі :) .. він працював у моєму кінці .. і я використовував пароль, який я використовував для експорту файлу .cer ..
Данял Сандеело

Працювали для мене. Дякую!
colefner

157

Ця відповідь буде корисною для нового користувача Mac (Працює і для Linux, Window 7 64 64 bit).

Порожній пароль працював у моєму Mac. (вставте нижній рядок у термінал)

keytool -list -v -keystore ~/.android/debug.keystore

коли це підкаже для

Enter keystore password:  

просто натисніть кнопку Enter (Dont type what). Це повинно працювати.

Переконайтеся, що він є для debug.keystore файлу за замовчуванням , а не для файлу зберігання ключів проекту (для цього може змінитись пароль).

Також добре працює для MacOS Sierra 10.10+.

Я чув, він працює і для Linux середовища. Я ще не перевіряв це в Linux.


1
Дякую. Він працював на моєму Windows 10 для налагодження магазину ключів
Vinayak Singh

11

Також важливим є зміна пароля.

Ця команда нарешті спрацювала для мене (з пристані):

 keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass changeit -validity 360 -keysize 2048

11

У tomcat 8.5 зверніть увагу, щоб написати правильну назву атрибутів. Це мій код на server.xml:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
           maxThreads="150" SSLEnabled="true">
    <SSLHostConfig>
        <Certificate certificateKeystoreFile="conf/keystore" certificateKeystorePassword="mypassword" type="RSA"/>
    </SSLHostConfig>
</Connector>

Ви можете відвідати https://tomcat.apache.org/tomcat-8.5-doc/config/http.html, щоб переглянути всі атрибути


1
Дякуємо, що вказали, звідки посилається пароль! :)
N00b Pr0grammer



4

Працює під Windows

відкрити командний рядок (натисніть клавішу Windows + R, потім введіть "cmd" без лапок у діалоговому вікні, що з'являється, а потім натисніть клавішу Enter).

потім введіть кодовий нюх нижче:

  1. cd C: \ Program Files \ Java \ jdk1.7.0_25 \ bin

потім введіть наступну команду

  1. keytool -list -keystore "C: / Документи та налаштування / Ваше ім'я / .android / debug.keystore"

Тоді він запитає пароль Keystore зараз. Типовим паролем є тип "android" і введіть або просто натисніть клавішу "DONT TYPE ANY PASSWORD".


3

Перевірте домашню папку ~/.gradle/gradle.properties. Іноді, якщо у вас є gradle.propertiesв домашньому довіднику, він бере там деталі. Або ви можете змінити це або видалити файли. Тоді він займе необхідні дані з вашої локальної папки.


1

Якщо ви працюєте над підписанням програми Flutter, дотримуючись цього посібника. Створіть та випустіть додаток для Android та запустіть цю помилку. Я сподіваюся, що ця відповідь вам допоможе.

У моєму випадку я змінив шлях до зберігання свого key.jks. Це сталося зі мною, тому що у мене на цьому шляху був існуючий файл.

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

Ця команда зберігає файл key.jks у вашому домашньому каталозі. Щоб зберегти його в іншому місці, змініть аргумент, який ви передаєте, на параметр -keystore.

У моєму випадку

keytool -genkey -v -keystore /Users/Y/Desktop/X/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias keyYour

тобто X - ім'я користувача та Y - назва папки

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

Однак зберігайте файл зберігання ключів приватним; не перевіряйте це на контролі громадських джерел!


0

Підсумовуючи поради на цій сторінці, я закінчив таке:

keytool -genkeypair -keystore ~/.android/release.keystore -alias <my_alias> -storepass <my_cert_pass> -keyalg RSA

Тоді у мене з’явився набір питань щодо імені, організації, місцезнаходження та пароля для мого псевдоніма.


0

помилка клавішного інструменту: java.io.IOException: Зберігання Keystore було зламано, або пароль був неправильним

Я вирішив свою проблему, змінивши шлях зберігання ключів C: \ MyWorks \ mykeystore на C: \ MyWorks \ mykeystore.keystore .


1
перший шлях "C: \ MyWorks \ mykeystore" - це не магазин ключів.
Хорхесіс


0

Я вирішив цю проблему, видаливши вихідний файл і запустивши команду ще раз. Виявляється, він НЕ перезаписує попередній файл. У мене виникло це питання під час поновлення даного шифрування cert з tomcat


0
 [root@localhost Certificate]# openssl pkcs12 -export -in 
 /opt/Certificate/115c99f4c5aa98f5.crt -inkey /opt/Certificate/ravi.in.key -certfile 
/opt/Certificate/gd_bundle-g2-g1.crt -out RaviNew.p12

Enter Export Password: <Password>
Verifying - Enter Export Password: <Password>

Примітка: - Експорт Пасворда запишіть куди завгодно, оскільки потрібно створити файл JKS (залежно від вашого вибору, який пароль ви хочете зробити)

  keytool -importkeystore -srckeystore DigiEduNew.p12 -srcstoretype pkcs12 -destkeystore finaldigiEdu.jks -deststoretype JKS
  Importing keystore DigiEduNew.p12 to finaldigiEdu.jks...
  Enter destination keystore password: <Any Password >
  Re-enter new password: <Any Password >
  Enter source keystore password: <.P12 Password >
  Entry for alias 1 successfully imported.
  Import command completed:  1 entries successfully imported, 0 entries failed or 
  cancelled



 Warning:
 The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 
 which is an industry standard format using "keytool -importkeystore -srckeystore 
 finaldigiEdu.jks -destkeystore finaldigiEdu.jks -deststoretype pkcs12".

0

Для мене я вирішив це, змінивши паролі з арабського на англійський лист, але спершу я перейшов до папки і видалив згенерований ключ, потім він працює.


0

У моєму випадку з Xamarin Forms 4.7 та Visual Studio 2019 16.7.0 Preview 3.1, проблемою було невідповідність версій нещодавно оновлених інструментів Android Build (apksigner) та JDK. Оновлено JDK до останнього та вказав новий шлях JDK на Інструменти-> Параметри-> Xamarin-> Налаштування Android, і він працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.