Keytool-Fehler Der Keystore wurde manipuliert oder das Passwort war falsch


191

Beim Generieren von Zertifikaten auf meinem lokalen Computer wird der folgende Fehler angezeigt.

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

Ich denke, es gibt einige Probleme in der JDK-Version. Ich habe den gleichen Befehl auf meinem Kollegen-Computer ausgeführt und er funktioniert einwandfrei.

Bitte teilen Sie Ihre Eingaben.


1
gibst du das richtige Passwort? und den Befehl aus dem richtigen Verzeichnis ausführen?
Dev2d

1
Während ich es erstelle, gebe ich ein neues Passwort ein. Aus welchem ​​Verzeichnis soll ich es ausführen?
C4CodeE4Exe

keytool -genkeypair -alias tomcat -keyalg RSA -keystore D: \ keystore.jks Versuchen Sie dies, um einen Keystore zu generieren, und exportieren Sie dann cer wie keytool -export -alias mycert -keystore D: \ keystore.jks -file vorburger.cer
dev2d

Können Sie bitte klarstellen, ob es den gleichen Effekt hat wie bei "keytool -genkey -alias tomcat -keyalg RSA".
C4CodeE4Exe

Kannst du mir den Zweck der Erzeugung dieses Cer sagen?
Dev2d

Antworten:


89

Aus Ihrer Beschreibung gehe ich davon aus, dass Sie sich auf einer Windows-Maschine befinden und Ihr Zuhause abc ist

Also jetzt: Ursache

Wenn Sie diesen Befehl ausführen

keytool -genkey -alias tomcat -keyalg RSA

Da Sie keinen expliziten Keystore angeben, wird versucht, einen Keystore zu generieren (und in Ihrem Fall, wenn Sie eine Ausnahme erhalten, um ihn zu aktualisieren). C:\users\abc>.keystoreNatürlich müssen Sie ein altes Kennwort für .keystore angeben, während Sie meiner Meinung nach Ihre Version bereitstellen (a ein neues).

Lösung

  1. Entweder .keystorevom C:\users\abc>Speicherort löschen und den Befehl ausführen

  2. oder versuchen Sie den folgenden Befehl, der einen neuen xyzkeystore erstellt:

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

Hinweis: -genkey Ist jetzt alt, verwenden Sie lieber, -genkeypairobwohl beide Werke gleichermaßen funktionieren.


Obwohl ich es selbst herausgefunden habe. "Löschen Sie entweder .keystore aus C: \ users \ abc> und versuchen Sie es mit dem Befehl" ist die richtige Lösung.
C4CodeE4Exe

Ist es möglich, den Keystore-Pass in den Argumenten zu liefern?
user1767754

2
Ich habe die vorhandene Keystore-Datei gelöscht und bin dann dem Befehl keytool -genkey -alias key0-keyalg RSA gefolgt. Dann werde ich nach einem neuen Passwort und anderen Daten gefragt, die ich angegeben habe. Aber immer noch, wenn ich versuche, eine signierte apk zu erstellen, wird dieselbe Fehlermeldung angezeigt: "Der Keystore wurde manipuliert oder das Passwort war falsch." Was ist das Problem hier?

265

Ich habe es mit dem Standardkennwort für den Cacerts-Keystore gelöst: 'changeit'


haha .. also eigentlich ist es nicht Passwort in neues zu ändern, und Standardarbeit: D
Muhammad Suleman

danke :) .. es hat an meinem Ende funktioniert..und ich habe das Passwort verwendet, mit dem ich die .cer-Datei exportiert habe ..
Danyal Sandeelo

Hat für mich gearbeitet. Vielen Dank!
Colefner

157

Diese Antwort ist hilfreich für neue Mac-Benutzer (funktioniert auch für Linux, Windows 7 64-Bit).

Das leere Passwort funktionierte auf meinem Mac. (Fügen Sie die folgende Zeile in Terminal ein)

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

wenn es dazu auffordert

Enter keystore password:  

Drücken Sie einfach die Eingabetaste (geben Sie nichts ein). Es sollte funktionieren.

Stellen Sie sicher, dass es sich um eine Standarddatei handelt debug.keystore , nicht um eine projektbasierte Keystore-Datei (das Kennwort kann sich hierfür ändern).

Funktioniert auch gut für MacOS Sierra 10.10+.

Ich habe gehört, es funktioniert auch für Linux-Umgebungen. Ich habe das noch nicht unter Linux getestet.


1
Vielen Dank. Es funktionierte unter Windows 10 für den Debug-Keystore
Vinayak Singh

11

Die Verwendung von changeit für das Passwort ist ebenfalls wichtig.

Dieser Befehl funktionierte schließlich für mich (mit Steg):

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

11

Achten Sie in Tomcat 8.5 darauf, den korrekten Namen der Attribute zu schreiben. Dies ist mein Code auf 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>

Sie können https://tomcat.apache.org/tomcat-8.5-doc/config/http.html besuchen , um alle Attribute anzuzeigen


1
Vielen Dank für den Hinweis, woher das Passwort stammt! :)
N00b Pr0grammer



4

Funktioniert unter Windows

Öffnen Sie die Eingabeaufforderung (drücken Sie Windows-Taste + R, geben Sie "cmd" ohne Anführungszeichen in das angezeigte Dialogfeld ein und drücken Sie die Eingabetaste).

Geben Sie dann den folgenden Code ein:

  1. CD C: \ Programme \ Java \ jdk1.7.0_25 \ bin

Geben Sie dann den folgenden Befehl ein

  1. keytool -list -keystore "C: / Dokumente und Einstellungen / Ihr Name / .android / debug.keystore"

Dann wird jetzt nach dem Keystore-Passwort gefragt. Das Standardkennwort ist "android" und geben Sie ein oder drücken Sie einfach die Eingabetaste "KEIN PASSWORT TYPEN".


3

Überprüfen Sie Ihren Home-Ordner ~/.gradle/gradle.properties. Manchmal, wenn Sie gradle.propertiesim Home-Verzeichnis haben, nimmt es Details von dort. Entweder können Sie das ändern oder die Dateien löschen. Dann werden die erforderlichen Details aus Ihrem lokalen Ordner übernommen.


0

Zusammenfassend habe ich die Ratschläge auf dieser Seite zusammengefasst und Folgendes festgestellt:

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

Dann bekam ich eine Reihe von Fragen zu Name, Organisation, Ort und Passwort für meinen Alias.


0

Keytool-Fehler: java.io.IOException: Der Keystore wurde manipuliert oder das Passwort war falsch

Ich habe mein Problem gelöst, als ich den Schlüsselspeicherpfad C: \ MyWorks \ mykeystore in C: \ MyWorks \ mykeystore.keystore geändert habe .


1
Der erste Pfad "C: \ MyWorks \ mykeystore" ist kein Keystore.
Jorgesys


0

Ich habe dieses Problem behoben, indem ich die Ausgabedatei gelöscht und den Befehl erneut ausgeführt habe. Es stellt sich heraus, dass die vorherige Datei NICHT überschrieben wird. Ich hatte dieses Problem bei der Erneuerung eines Zertifikats mit 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>

Hinweis: - Schreiben Sie über Export Pasworrd irgendwo hin, da eine JKS-Datei erstellt werden muss (es hängt von Ihrer Wahl ab, welches Kennwort Sie erstellen möchten).

  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

Für mich habe ich es gelöst, indem ich Passwörter von arabischen Buchstaben in englische Buchstaben geändert habe, aber zuerst bin ich in den Ordner gegangen und habe den generierten Schlüssel gelöscht, dann funktioniert es.


0

Wenn Sie daran arbeiten, Ihre Flutter-App anhand dieser Anleitung zu signieren, erstellen und veröffentlichen Sie eine Android-App und führen Sie diesen Fehler aus. Ich hoffe diese Antwort hilft dir.

In meinem Fall habe ich den Pfad zum Speichern meiner key.jks geändert. Dies ist mir passiert, weil in diesem Pfad eine Datei vorhanden war.

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

Dieser Befehl speichert die Datei key.jks in Ihrem Home-Verzeichnis. Um es an anderer Stelle zu speichern, ändern Sie das Argument, das Sie an den Parameter -keystore übergeben.

In meinem Fall,

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

dh X - Benutzername und Y - Ordnername

Anschließend werden Sie aufgefordert, das Keystore-Passwort einzugeben : und das neue Passwort erneut einzugeben: . Hier können Sie ein beliebiges Passwort verwenden.

Halten Sie die Keystore-Datei jedoch privat. Checken Sie es nicht in die öffentliche Quellcodeverwaltung ein!


0

In meinem Fall mit Xamarin Forms 4.7 und Visual Studio 2019 16.7.0 Preview 3.1 war das Problem die Nichtübereinstimmung der Version der kürzlich aktualisierten Android Build-Tools (Apksigner) und JDK. JDK wurde auf den neuesten Stand gebracht und auf den neuen JDK-Pfad unter Extras-> Optionen-> Xamarin-> Android-Einstellungen verwiesen, und es funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.