Differenza tra file .keystore e file .jks


227

Ho provato a trovare la differenza tra .keystorefile e .jksfile, ma non sono riuscito a trovarlo. So che jksè per "keystore Java" ed entrambi sono un modo per memorizzare coppie chiave / valore.

C'è qualche differenza o preferenza da usare l'una sull'altra?

Risposte:


197

In definitiva, .keystoree .jkssono solo estensioni di file: sta a te nominare i tuoi file in modo ragionevole. Alcune applicazioni utilizzano un file keystore archiviato in $HOME/.keystore: di solito è implicito che si tratta di un file JKS, poiché JKS è il tipo di archivio chiavi predefinito nel provider di sicurezza Java Sun / Oracle . Non tutti usano l' .jksestensione per i file JKS, perché è implicita come impostazione predefinita. Consiglierei di usare l'estensione, solo per ricordare quale tipo specificare (se necessario).

In Java, il keystore di parole può avere uno dei seguenti significati, a seconda del contesto:

Quando si parla di file e archiviazione, questa non è in realtà una funzione di archiviazione per coppie chiave / valore (ci sono molti o altri formati per questo). Piuttosto, è un contenitore per archiviare chiavi crittografiche e certificati (credo che alcuni di essi possano anche archiviare password). In genere, questi file sono crittografati e protetti da password per non rendere disponibili questi dati a soggetti non autorizzati.

Java utilizza la sua KeyStoreclasse e le relative API per utilizzare un keystore ( sia esso basato su file o meno ). JKSè un formato file specifico di Java, ma l'API può essere utilizzata anche con altri tipi di file, in genere PKCS # 12. Quando si desidera caricare un keystore, è necessario specificare il tipo di keystore. Le estensioni convenzionali sarebbero:

  • .jksper tipo "JKS",
  • .p12o .pfxper tipo "PKCS12"(il nome della specifica è PKCS # 12, ma #non viene utilizzato nel nome del tipo di archivio chiavi Java).

Inoltre, BouncyCastle fornisce anche le sue implementazioni, in particolare BKS (in genere utilizzando l' .bksestensione), che viene spesso utilizzato per le applicazioni Android.


Posso confermare che la modifica dell'estensione da .jks a .keystore funzionerà. Si prega di eseguire il backup prima di farlo !!
BMaximus

77

Sei confuso su questo.

A keystoreè un contenitore di certificati, chiavi private ecc.

Ci sono specifiche di quale dovrebbe essere il formato di questo keystore e il predominante è # PKCS12

JKS è l'implementazione del keystore di Java. C'è anche BKS ecc.

Questi sono tutti tipi di keystore .

Quindi per rispondere alla tua domanda:

differenza tra file .keystore e file .jks

Non c'è nessuno. JKS sono file di archivio chiavi. C'è differenza però tra i tipi di keystore . Ad esempio JKSvs#PKCS12


2
Direi che il tipo di keystore predominante è JKS, non PKCS # 12, solo perché la parola "keystore" fa parte della terminologia Java, utilizzata solo raramente al di fuori del contesto di Java. Detto questo, i file PKCS # 12 sono piuttosto comuni (in genere .pfxo .p12).
Bruno,

@Bruno: intendi il tipo predominante nelle applicazioni Java.
Cratylus,

10
No, voglio dire che la parola "keystore" è principalmente una parola Java. Altre applicazioni / piattaforme chiamano raramente il luogo / file in cui sono archiviate chiavi e certificati un "keystore". MS chiama, ad esempio, i file "Scambio di informazioni personali" dei file PKCS # 12. Altri hanno nomi come "catena chiave" (OSX), "database certificati" (NSS), "archivio certificati", "portachiavi", ..., per i luoghi in cui archiviano chiavi e certificati, non proprio "archivio chiavi".
Bruno,

3
@Bruno: capisco cosa intendi. Buon punto. Non ci avevo mai pensato prima
Grazie

3

Un motivo per scegliere .keystore su .jks è che Unity riconosce il primo ma non il secondo quando si naviga per selezionare il file del keystore (Unity 2017.3, macOS).

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.