2012-01-24 22 views
136

He intentado encontrar la diferencia entre los archivos .keystore y .jks, pero no pude encontrarlo. Sé que jks es para "Java keystore" y ambos son una forma de almacenar pares clave/valor.Diferencia entre el archivo .keystore y el archivo .jks

¿Existe alguna diferencia o preferencia para usar una sobre otra?

Respuesta

44

Usted está confundido con esto.

Un keystore es un contenedor de certificados, claves privadas, etc.

Hay especificaciones de lo que debería ser el formato de este almacén de claves y la más común es la #PKCS12

JKS es la implementación del almacén de claves de Java. También hay BKS, etc.

Estos son todos los tipos de almacén .

Así que para responder a su pregunta:

diferencia entre archivos y .keystore .jks archivos

No hay ninguna. JKS son archivos de almacén de claves. Hay una diferencia entre keystore tipos. P.ej. JKS vs #PKCS12

+2

Diría que el tipo de * keystore * predominante es JKS, no PKCS # 12, solo porque la palabra "keystore" es parte de la terminología de Java, raramente utilizada fuera del contexto de Java. Dicho esto, los archivos PKCS # 12 son bastante comunes (típicamente '.pfx' o' .p12'). – Bruno

+0

@ Bruno: te refieres al tipo predominante en aplicaciones Java. – Cratylus

+5

No, quiero decir que la palabra "keystore" es en su mayoría una palabra de Java. Otras aplicaciones/plataformas raramente llaman al lugar/archivo donde las claves y los certificados almacenan un "almacén de claves". MS llama a los archivos PKCS # 12 Archivos de "Intercambio de información personal", por ejemplo. Otros tienen nombres como "cadena de claves" (OSX), "base de datos de certificados" (NSS), "almacén de certificados", "llaveros", ..., para los lugares donde almacenan claves y certificados, no realmente "almacén de claves". – Bruno

126

En última instancia, .keystore y .jks son sólo extensiones de archivo: le toca a usted para nombrar sus archivos con sensatez. Algunas aplicaciones utilizan un archivo de almacén de claves almacenado en $HOME/.keystore: por lo general implica que es un archivo JKS, ya que JKS is the default keystore type in the Sun/Oracle Java security provider. No todo el mundo usa la extensión .jks para archivos JKS, porque está implícita como la predeterminada. Recomiendo usar la extensión, solo para recordar qué tipo especificar (si es necesario).

En Java, la palabra almacén de claves puede tener cualquiera de los siguientes significados, dependiendo del contexto:

al hablar sobre el archivo y almacenamiento, esto no es realmente un Stora instalación ge para pares clave/valor (hay muchos u otros formatos para esto). Más bien, es un contenedor para almacenar claves y certificados criptográficos (creo que algunos de ellos también pueden almacenar contraseñas). En general, estos archivos están encriptados y protegidos con contraseña para no permitir que estos datos estén disponibles para terceros no autorizados.

Java usa su clase KeyStore y la API relacionada para hacer uso de un almacén de claves (whether it's file based or not). JKS es un formato de archivo específico de Java, pero la API también se puede usar con otros tipos de archivos, generalmente PKCS # 12. Cuando desee cargar un almacén de claves, debe especificar su tipo de almacén de claves.Las extensiones convencionales serían:

  • .jks para el tipo "JKS",
  • .p12 o .pfx para el tipo "PKCS12" (el nombre especificación es PKCS # 12, pero el # no se utiliza en el almacén de claves nombre de tipo Java).

Además, BouncyCastle también proporciona sus implementaciones, en particular BKS (típicamente utilizando la extensión de .bks), que se utiliza con frecuencia para aplicaciones de Android.

0

Una razón para elegir .keystore más .jks es que Unity reconoce lo primero pero no lo último cuando está navegando para seleccionar su archivo de almacén de claves (Unity 2017.3, macOS).

Cuestiones relacionadas