ошибка keytool хранилище ключей было изменено или пароль был неверным


Я получаю следующую ошибку при создании сертификатов на моей локальной машине.

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

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

пожалуйста, поделитесь своими входами.

11 125

11 ответов:

из вашего описания я предполагаю, что вы находитесь на машине windows, и ваш дом abc

Итак, Теперь: Причина

при выполнении этой команды

keytool -genkey -alias tomcat -keyalg RSA

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

решение

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

  2. или попробуйте следующую команду, которая создаст новый xyzkeystore:

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

Примечание:-genkey старый теперь скорее использовать -genkeypair хотя оба работают одинаково.

Я решил его, используя пароль по умолчанию для хранилища ключей cacerts:'changeit'

этот ответ будет полезен для нового пользователя Mac (работает для Linux, Windows 7 64 бит тоже).

пустой пароль работал в моем mac . (вставьте нижеприведенную строку в терминал)

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

когда запрос

Enter keystore password:  

просто нажмите кнопку enter (не вводите ничего).он должен работать .

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

хорошо работает для MacOS Сьерра-10.10+ тоже.

Я слышал, что он работает и для среды linux. я еще не тестировал это в linux.

в tomcat 8.5 обратите внимание, чтобы написать правильное имя атрибутов. Это мой код на сервере.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 чтобы увидеть все атрибуты

использование изменяется пароль является слишком важным.

эта команда наконец-то сработала для меня(с jetty):

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

проверьте свою домашнюю папку ~/.gradle/gradle.properties. Иногда, если у вас есть gradle.properties в домашнем каталоге он берет данные от туда. Либо вы можете изменить или удалить файлы. Затем он будет принимать необходимые данные из вашей локальной папки.

работает на Windows

откройте командную строку (нажмите клавишу Windows + R, затем введите "cmd" без кавычек в появившемся диалоговом окне, а затем нажмите клавишу Enter).

затем введите код нюхать ниже:

  1. cd C:\Program файлы\Java\jdk1.7. 0_25\bin

затем введите следующую команду

  1. keytool-list-keystore "C:/Documents и настройки/ваше имя/.андроид/отладки.хранилище ключей"

тогда это будет попросите пароль хранилища ключей прямо сейчас. Пароль по умолчанию "Андроид" и Enter или просто нажмите enter "не введите пароль".

суммируя советы с этой страницы, я закончил со следующим:

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

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

ошибка keytool: java.io. IOException: хранилище ключей было изменено, или пароль был неверным

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

в моем случае я должен был иметь root открыть.

я исправил эту проблему, удалив выходной файл и снова запустив команду. Оказывается, он не перезаписывает предыдущий файл. У меня была эта проблема при обновлении сертификата let's encrypt с tomcat