2012-01-24 18 views
136

Ho cercato di trovare la differenza tra i file .keystore e i file .jks, eppure non sono riuscito a trovarlo. So che jks è per "Java keystore" ed entrambi sono un modo per memorizzare coppie chiave/valore.Differenza tra file .keystore e .jks file

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

risposta

44

Sei confuso su questo.

Un keystore è un contenitore di certificati, chiavi private ecc

ci sono le specifiche di quello che dovrebbe essere il formato di questo keystore ed il predominante è la #PKCS12

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

Questi sono tutti i keystore tipi.

Quindi, per rispondere alla tua domanda:

differenza tra i file e le .keystore .jks file

Non v'è nessuno. JKS sono file di archivio di chiavi. C'è differenza però tra i tipi di chiavi . Per esempio. JKS vs #PKCS12

+2

Direi che il tipo * 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 '.pfx' o' .p12'). – Bruno

+0

@Bruno: si intende il tipo predominante nelle applicazioni Java. – Cratylus

+5

No, voglio dire che la parola "keystore" è principalmente una parola Java. Altre applicazioni/piattaforme raramente chiamano il luogo/file in cui le chiavi e i certificati sono archiviati in un "keystore". MS chiama i file PKCS # 12 "File di scambio di informazioni personali", per esempio. Altri hanno nomi come "key chain" (OSX), "database dei certificati" (NSS), "archivio certificati", "portachiavi", ..., per i luoghi in cui memorizzano chiavi e certificati, non proprio "keystore". – Bruno

126

In definitiva, .keystore e .jks sono solo estensioni di file: tocca a voi per denominare i file in modo sensato. Alcune applicazioni utilizzano un file di archivio di chiavi memorizzato in $HOME/.keystore: di solito è implicito che si tratta di un file JKS, dal JKS is the default keystore type in the Sun/Oracle Java security provider. Non tutti usano l'estensione .jks per i file JKS, perché è implicita come predefinita. Consiglierei di usare l'estensione, solo per ricordare quale tipo specificare (se necessario).

In Java, la parola di chiavi può avere uno dei seguenti significati, a seconda del contesto:

Quando si parla di file e di stoccaggio, questo non è davvero una stora ge facility per coppie chiave/valore (ci sono molti altri formati per questo). Piuttosto, è un contenitore per memorizzare chiavi e certificati crittografici (credo che alcuni di essi possano anche memorizzare password). Generalmente, questi file sono crittografati e protetti da password in modo da non rendere disponibili questi dati a parti non autorizzate.

Java utilizza la classe KeyStore e l'API correlata per utilizzare un keystore (whether it's file based or not). JKS è un formato di file specifico per Java, ma l'API può anche essere utilizzata con altri tipi di file, in genere PKCS # 12. Quando si desidera caricare un keystore, è necessario specificare il relativo tipo di keystore.Le estensioni convenzionali sarebbero:

  • .jks per il tipo "JKS",
  • .p12 o .pfx per il tipo "PKCS12" (il nome specifica è PKCS # 12, ma il # non viene utilizzato nel keystore nome del tipo Java).

Inoltre, BouncyCastle fornisce anche le implementazioni, in particolare BKS (tipicamente usando l'.bks estensione), che viene spesso utilizzato per applicazioni Android.

0

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