¿Cuál es la diferencia entre cacerts y keystore?

112

¿Cuál es la diferencia entre los dos, cacerts y keystore?

Si utilizo la definición que se encuentra en estos enlaces, cacerts y keystore , parece que son una colección de certificados, pero en el contexto de un sistema distribuido (Java). ¿Cuál se usa para autenticar durante una conexión SSL? ¿Ambos o solo uno de ellos o alternativo?

dimas
fuente
3
cacerts = certificados de autoridad de certificación ?
Peter Mortensen

Respuestas:

139

'cacerts' es un almacén de confianza. Se utiliza un almacén de confianza para autenticar a los pares. Se utiliza un almacén de claves para autenticarse.

Marqués de Lorne
fuente
Hola EJP, gracias por las respuestas, lo cité antes de leer cualquiera de tus respuestas;) Así que solo una aclaración si resumo tus respuestas en Francis y Pangea. Cacerts se utiliza para autenticar a los clientes que solicitan acceso o conexión y, para el almacén de claves, no entiendo por qué querría autenticarse. :)
dimas
20
Lea lo que escribí de nuevo. (1) Se utiliza un almacén de confianza para autenticar pares. Si es el cliente, el servidor es el par; si eres el servidor, viceversa. (2) Si usted es el servidor, o si es el cliente y el servidor solicita la autenticación del cliente, debe autenticarse ante el par, por lo que necesita su propio certificado y clave privada, que se encuentran en el almacén de claves. (Confusamente, se usa el mismo formato de archivo para ambos y se llama archivo de almacén de claves).
Marquis of Lorne
Está bien, lo tengo, pero solo una pregunta de seguimiento. My cacerts contiene todos los certificados almacenados en el almacén de claves y más. Aunque algunos certificados, incluido el certificado privado de mi aplicación, tienen alias diferentes, pero tienen las mismas firmas digitales. Entonces, ¿idealmente puedo usar mis cacerts si me conecto al servidor y solicito autenticación?
dimas
No entiendo la parte sobre "alias diferentes". ¿Diferente de qué? Su última pregunta se puede responder mediante un experimento.
Marqués de Lorne
3
@ raja777m cacertses en quien confías. No veo ninguna razón para que eso cambie entre entornos, a menos que cometa el error de usar certificados autofirmados para servidores de prueba: un error porque significa que está usando diferentes rutas de código en prueba y en producción.
Marqués de Lorne
41

cacerts es donde Java almacena los certificados públicos de las CA raíz. Java usa cacerts para autenticar los servidores.

El almacén de claves es donde Java almacena las claves privadas de los clientes para que pueda compartirlas con el servidor cuando el servidor solicita la autenticación del cliente.

Aravind Yarram
fuente
@dimas Evidentemente, pero lo que realmente quiere decir es 'solicitudes'.
Marqués de Lorne
1
@ user207421 Creo que en esta respuesta la aplicación Java está desempeñando el papel de un cliente http y la URL http que llama nuestra aplicación Java es la aplicación del servidor. Entonces, KeyStore de nuestra aplicación cliente Java debe tener tanto la clave privada como el certificado (clave pública firmada) y enviar solo el certificado a la aplicación del servidor, ¿verdad? Y si la aplicación del servidor también es una aplicación Java, verifica el certificado enviado por nuestra aplicación Java cliente, utilizando su propio archivo cacert, ¿verdad?
user104309
0

Los cacerts son detalles de autoridades de firma confiables que pueden emitir certificados. Esto es lo que tienen la mayoría de los navegadores debido a los certificados que se determinan como auténticos. Keystone tiene sus certificados relacionados con el servicio para autenticar clientes.

Mandibular
fuente
-2

Verifique su ruta JAVA_HOME. Como sistemas busca un archivo java.policy que se encuentra en JAVA_HOME/jre/lib/security. Tu JAVA_HOME debería ser siempre ../JAVA/JDK.

naveen verma
fuente
3
gracias por el esfuerzo, pero debe leer y comprender la respuesta de EJP.
dimas