Neben @ pascal-thivent ‚s ausgezeichnete Antwort:
Das Kennwort für Schlüsselspeicher hat zwei Zwecke - wenn nicht im Lieferumfang enthalten, keytool
weigert Sie den Inhalt des Speichers mit neuen Inhalten ersetzen zu lassen, z.B. indem Sie vorhandene Einträge löschen oder neue hinzufügen.
Wenn Sie Schreibzugriff haben, um die Keystore-Datei mit keytool
zu aktualisieren (es ist nicht setuid), können Sie den Inhalt natürlich mit einem anderen Tool ersetzen, das das Kennwort nicht überprüft hat. Und wir wissen, dass der Speicher und sein Format ohne Passwort lesbar sind, also können wir vermutlich schreiben, was wir dort wollen.
Hier kommt das Bestätigungskennwort an. Wenn die Geschäftseinträge ausgeschrieben sind, wird das bereitgestellte Geschäftskennwort verwendet, um einen Auszug des Geschäftsinhaltes zu berechnen, der durch das Passwort gesalzen wird. Dies ist ein unidirektionaler Hash/Digest. Ohne das Passwort können Sie nicht überprüfen, ob der Inhalt des Speichers manipuliert wurde oder nicht. Gleichermaßen kann ein böswilliger Benutzer, der das Passwort nicht kennt, auch nicht den Inhalt des Shops ändern und den Digest-Hash erzeugen, der durch dieses Passwort erzeugt würde.
Deshalb, wenn Sie kein Passwort angeben, warnt Sie keytool
nur, dass es nicht überprüfen kann, dass der Speicher nicht manipuliert wurde. Wenn Sie ein ungültig Kennwort angeben, oder den Laden hat manipuliert wurde, werden Sie eine andere Meldung:
Enter keystore password: keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect
keytool
nicht in der Lage war, neu zu erstellen, die vorhandene Hash auf dem aktuellen Digest basiert Speicherinhalt und das von Ihnen angegebene Passwort, so dass entweder das Passwort falsch ist oder der Keystore kompromittiert ist - keytool
kann nicht sagen, aber es setzt voraus, dass Sie oder die Software den Store lesen.
anzumerken, dass während der Begriff Schlüsselspeicher im Allgemeinen verwendet wird, ist es gleichermaßen auf Schlüsselspeicher verweist und Truststores. Weniger allgemein ist ein Keystore häufiger ein Identitätsspeicher und enthält Identitäten und ihre geheimen, privaten Schlüssel, wie sie z.B. von einem Server, auf dem HTTPS ausgeführt wird. A Truststore enthält oft nur öffentliche Schlüssel und keine privaten Schlüssel, also keine Geheimnisse, aber ist wichtig, um festzustellen, welche Identitäten ein Client vertraut.
@Pascal, ja. Der Server, den ich verwende, hat kein CA-Zertifikat, daher benötigt er einen Truststore, damit er die SSL-Authentifizierung für den Server durchführen kann. – sixtyfootersdude
Ich verstehe auch nicht, warum ein Passwort für den TrustStore benötigt wird, welcher der Client-Teil des SSL ist. Insbesondere wenn eine CA nicht beteiligt ist. Hast du es geschafft, das zu lösen? –