Unterschied zwischen .keystore-Datei und .jks-Datei

226

Ich habe versucht, den Unterschied zwischen .keystoreDateien und .jksDateien zu finden, konnte ihn jedoch nicht finden. Ich weiß, jksist für "Java Keystore" und beide sind eine Möglichkeit, Schlüssel / Wert-Paare zu speichern.

Gibt es einen Unterschied oder eine Präferenz, einander vorzuziehen?

Juveria
quelle

Antworten:

197

Letztendlich .keystoreund .jkssind nur Dateierweiterungen: Es liegt an Ihnen, Ihre Dateien vernünftig zu benennen. Einige Anwendungen verwenden eine Keystore-Datei, die in gespeichert ist $HOME/.keystore: Es wird normalerweise impliziert, dass es sich um eine JKS-Datei handelt, da JKS der Standard-Keystore-Typ im Sun / Oracle Java-Sicherheitsanbieter ist . Nicht jeder verwendet die .jksErweiterung für JKS-Dateien, da dies standardmäßig impliziert ist. Ich würde empfehlen, die Erweiterung zu verwenden, um sich zu merken, welcher Typ angegeben werden soll (falls erforderlich).

In Java kann der Wortschlüsselspeicher je nach Kontext eine der folgenden Bedeutungen haben:

Wenn es um die Datei und den Speicher geht, ist dies nicht wirklich eine Speicherfunktion für Schlüssel / Wert-Paare (es gibt viele oder andere Formate dafür). Es ist vielmehr ein Container zum Speichern von kryptografischen Schlüsseln und Zertifikaten (ich glaube, einige von ihnen können auch Passwörter speichern). Im Allgemeinen sind diese Dateien verschlüsselt und passwortgeschützt, damit diese Daten nicht Unbefugten zur Verfügung stehen.

Java verwendet seine KeyStoreKlasse und die zugehörige API, um einen Keystore zu verwenden ( unabhängig davon, ob er dateibasiert ist oder nicht ). JKSist ein Java-spezifisches Dateiformat, aber die API kann auch mit anderen Dateitypen verwendet werden, normalerweise PKCS # 12. Wenn Sie einen Keystore laden möchten, müssen Sie dessen Keystore-Typ angeben. Die herkömmlichen Erweiterungen wären:

  • .jksfür Typ "JKS",
  • .p12oder .pfxfür Typ "PKCS12"(der Spezifikationsname lautet PKCS # 12, wird jedoch #nicht im Java-Keystore-Typnamen verwendet).

Darüber hinaus bietet BouncyCastle auch seine Implementierungen an, insbesondere BKS (normalerweise unter Verwendung der .bksErweiterung), das häufig für Android-Anwendungen verwendet wird.

Bruno
quelle
Ich kann bestätigen, dass das Ändern der Erweiterung von .jks zu .keystore funktioniert. Bitte sichern Sie, bevor Sie es tun!
BMaximus
77

Sie sind diesbezüglich verwirrt.

A keystoreist ein Container mit Zertifikaten, privaten Schlüsseln usw.

Es gibt Spezifikationen für das Format dieses Schlüsselspeichers und das vorherrschende ist das # PKCS12

JKS ist Javas Keystore-Implementierung. Es gibt auch BKS etc.

Dies sind alles Keystore- Typen .

Um Ihre Frage zu beantworten:

Unterschied zwischen .keystore-Dateien und .jks-Dateien

Da ist gar nichts. JKS sind Keystore-Dateien. Es gibt jedoch Unterschiede zwischen den Keystore- Typen . ZB JKSvs.#PKCS12

Cratylus
quelle
2
Ich würde sagen, der vorherrschende Keystore- Typ ist JKS, nicht PKCS # 12, nur weil das Wort "Keystore" Teil der Java-Terminologie ist und nur selten außerhalb des Java-Kontexts verwendet wird. Davon abgesehen sind PKCS # 12-Dateien in der Tat ziemlich häufig (normalerweise .pfxoder .p12).
Bruno
@Bruno: Du meinst den vorherrschenden Typ in Java-Anwendungen.
Cratylus
10
Nein, ich meine, das Wort "Keystore" ist meistens ein Java-Wort. Andere Anwendungen / Plattformen nennen den Ort / die Datei, an dem Schlüssel und Zertifikate gespeichert sind, selten einen "Schlüsselspeicher". MS nennt PKCS # 12-Dateien beispielsweise "Personal Information Exchange" -Dateien. Andere haben Namen wie "Schlüsselkette" (OSX), "Zertifikatdatenbank" (NSS), "Zertifikatspeicher", "Schlüsselringe", ... für die Orte, an denen sie Schlüssel und Zertifikate speichern, nicht wirklich "Schlüsselspeicher".
Bruno
3
@ Bruno: Ich verstehe, was du meinst. Guter Punkt. Ich hatte noch nie so darüber nachgedacht. Danke
Cratylus
3

Ein Grund, .keystore anstelle von .jks zu wählen, besteht darin, dass Unity erstere erkennt, letztere jedoch nicht, wenn Sie zur Auswahl Ihrer Keystore-Datei navigieren (Unity 2017.3, macOS).

AbePralle
quelle