errore keytool Keystore è stato manomesso o la password non è corretta


191

Ricevo il seguente errore durante la generazione di certificati sul mio computer locale.

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

Penso che ci siano alcuni problemi nella versione jdk. Ho eseguito lo stesso comando sul mio computer colleghe e sta funzionando bene.

Si prega di condividere i tuoi input.


1
stai dando la password corretta? ed eseguendo il comando dalla directory corretta?
dev2d,

1
Mentre la sto creando, sto inserendo una nuova password. Da quale directory devo eseguirla?
C4CodeE4Exe

keytool -genkeypair -alias tomcat -keyalg RSA -keystore D: \ keystore.jks provare questo per generare keystore e quindi esportare cer come keytool -export -alias mycert -keystore D: \ keystore.jks -file vorburger.cer
dev2d

Puoi chiarire, avrà lo stesso effetto di "keytool -genkey -alias tomcat -keyalg RSA".
C4CodeE4Exe

puoi dirmi lo scopo di generare questo cer?
dev2d,

Risposte:


89

Dalla tua descrizione presumo che tu sia su Windows Machine e la tua casa è abc

So Now: Cause

Quando si esegue questo comando

keytool -genkey -alias tomcat -keyalg RSA

poiché non stai specificando un keystore esplicito, proverà a generare un keystore (e nel tuo caso man mano che stai ottenendo un'eccezione per l'aggiornamento) C:\users\abc>.keystoree, naturalmente, devi fornire una vecchia password per .keystore mentre credo che tu stia fornendo la tua versione (un nuovo).

Soluzione

  1. Elimina .keystoredalla C:\users\abc>posizione e prova il comando

  2. oppure prova a seguire il comando che creerà un nuovo xyzkeystore:

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

Nota: -genkey è vecchio ora piuttosto usare -genkeypairsebbene entrambi funzionino ugualmente.


Anche se l'ho capito da solo. "Elimina .keystore dalla posizione C: \ users \ abc> e prova il comando" è la soluzione giusta.
C4CodeE4Exe

è possibile consegnare il passaggio del keystore negli argomenti?
user1767754

2
Ho eliminato il file keystore esistente e seguito il comando keytool -genkey -alias key0-keyalg RSA, quindi mi chiedono una nuova password e altri dati, che ho fornito. Ma ancora adesso, quando provo a creare un apk firmato, mostra lo stesso messaggio di errore: "Keystore è stato manomesso o la password non è corretta" Qual è il problema qui?

266

L'ho risolto utilizzando la password predefinita per il keystore cacerts: 'changeit'


haha .. quindi in realtà non cambia la password con una nuova e funziona di default: D
Muhammad Suleman

grazie :) .. ha funzionato alla mia fine..e stavo usando la password che ho usato per esportare il file .cer ..
Danyal Sandeelo

Ha funzionato per me. Grazie!
Colefner,

158

Questa risposta sarà utile per il nuovo utente Mac (funziona per Linux, anche Windows 7 a 64 bit).

Password vuota funzionata nel mio mac. (incolla la riga sotto nel terminale)

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

quando richiesto

Enter keystore password:  

basta premere il pulsante di invio (non digitare nulla). Dovrebbe funzionare.

Assicurati che sia per il debug.keystore file predefinito , non per il file del keystore basato sul progetto (la password potrebbe cambiare per questo).

Funziona bene anche con MacOS Sierra 10.10+.

Ho sentito che funziona anche per l'ambiente Linux. non l'ho ancora testato su Linux.


1
Grazie. Ha funzionato sul mio Windows 10 per il keystore di debug
Vinayak Singh il

11

Anche l'uso di changeit per la password è importante.

Questo comando finalmente ha funzionato per me (con molo):

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

11

In tomcat 8.5 prestare attenzione a scrivere il nome corretto degli attributi. Questo è il mio codice su 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>

Puoi visitare https://tomcat.apache.org/tomcat-8.5-doc/config/http.html per vedere tutti gli attributi


1
Grazie per aver indicato da dove viene inviata la password! :)
N00b Pr0grammer


7

Ho risolto questo problema utilizzando la password predefinita " changeit ".


4

Funziona su Windows

apri il prompt dei comandi (premi il tasto Windows + R, quindi digita "cmd" senza virgolette nella finestra di dialogo visualizzata, quindi premi il tasto Invio).

quindi digitare il codice sniff di seguito:

  1. cd C: \ Programmi \ Java \ jdk1.7.0_25 \ bin

quindi digitare il seguente comando

  1. keytool -list -keystore "C: / Documents and Settings / Il tuo nome / .android / debug.keystore"

Quindi chiederà la password del keystore ora. La password predefinita è di tipo "android" e inserisci o premi semplicemente "DONT TYPE ANY PASSWORD".


3

Controlla la tua cartella home ~/.gradle/gradle.properties. A volte se hai gradle.propertiesnella home directory ci vogliono dettagli da lì. Puoi modificarlo o eliminare i file. Quindi prenderanno i dettagli richiesti dalla cartella locale.


1

Se stai lavorando alla firma dell'app Flutter seguendo questa guida Crea e rilascia un'app Android ed esegui questo errore. Spero che questa risposta ti aiuti.

Nel mio caso ho cambiato il percorso per memorizzare il mio key.jks. Questo mi è successo perché in quel percorso c'era un file esistente.

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

Questo comando memorizza il file key.jks nella tua home directory. Per memorizzarlo altrove, modificare l'argomento passato al parametro -keystore.

Nel mio caso,

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

cioè X - Nome utente e Y - nome della cartella

Poi vi verrà chiesto di inserire la password chiavi: e reinserire la nuova password: . Qui puoi usare qualsiasi password tu voglia.

Tuttavia, mantenere privato il file keystore; non controllarlo nel controllo del codice sorgente pubblico!


0

Riassumendo i consigli da questa pagina, ho finito con il seguente:

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

Poi ho ricevuto una serie di domande su nome, organizzazione, posizione e password per il mio alias.


0

errore keytool: java.io.IOException: Keystore è stato manomesso o la password non è corretta

Ho risolto il mio problema quando ho cambiato il percorso del keystore C: \ MyWorks \ mykeystore in C: \ MyWorks \ mykeystore.keystore .


1
il primo percorso "C: \ MyWorks \ mykeystore" non è un keystore.
Jorgesys,


0

Ho risolto questo problema eliminando il file di output ed eseguendo nuovamente il comando. Si scopre che NON sovrascrive il file precedente. Ho avuto questo problema durante il rinnovo di un encrypt cert con 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>

Nota: - Sopra Export Pasworrd annota ovunque perché è necessario creare il file JKS (dipende dalla tua scelta quale password vuoi fare)

  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

Per me l'ho risolto cambiando le password dalla lettera araba alla lettera inglese, ma prima sono andato nella cartella e ho eliminato la chiave generata, quindi funziona.


0

Nel mio caso con Xamarin Forms 4.7 e Visual Studio 2019 16.7.0 Preview 3.1, il problema era la mancata corrispondenza della versione degli strumenti Android Build (apksigner) e JDK aggiornati di recente. Aggiornato JDK alla versione più recente e ha indicato il nuovo percorso JDK su Strumenti-> Opzioni-> Xamarin-> Impostazioni Android e funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.