Quelle est la différence entre cacerts et keystore?

112

Quelle est la différence entre les deux, cacerts et keystore?

Si j'utilise la définition trouvée dans ces liens, cacerts et keystore , il semble qu'il s'agisse d'une collection de certificats, mais dans le contexte d'un système distribué (Java). Lequel est utilisé pour s'authentifier lors d'une connexion SSL? Les deux ou juste l'un d'entre eux ou alternativement?

dimas
la source
3
cacerts = certificats d'autorité de certification ?
Peter Mortensen

Réponses:

139

«cacerts» est un truststore. Un magasin de confiance est utilisé pour authentifier les pairs. Un keystore est utilisé pour vous authentifier.

Marquis de Lorne
la source
Salut EJP merci pour les réponses, je l'ai cité avant de lire l'une de vos réponses;) Donc juste une clarification si je résume vos réponses en François et Pangée. Cacerts est utilisé pour authentifier les clients demandant un accès ou une connexion et pour le keystore, je ne comprends pas tout à fait pourquoi vous voudriez vous authentifier. :)
dimas
20
Lisez à nouveau ce que j'ai écrit. (1) Un truststore est utilisé pour authentifier les pairs. Si vous êtes le client, le serveur est le pair; si vous êtes le serveur, vice versa. (2) Si vous êtes le serveur, ou si vous êtes le client et que le serveur demande une authentification client, vous devez vous authentifier auprès du pair, vous avez donc besoin de votre propre certificat et clé privée, qui se trouvent dans le magasin de clés. (De manière confuse, le même format de fichier est utilisé pour les deux et il s'appelle un fichier de keystore.)
Marquis of Lorne
OK, mais juste une question de suivi. My cacerts contient tous les certificats stockés dans le keystore et plus encore. Bien que certains certificats, y compris le certificat privé de mon application, aient des alias différents, mais ils ont les mêmes signatures numériques. Alors idéalement, je peux utiliser mes cacerts si je me connecte au serveur et demande une authentification?
dimas
Je ne comprends pas la partie sur les «alias différents». Différent de quoi? Votre dernière question peut répondre par expérience.
Marquis of Lorne
3
@ raja777m cacertsest en qui vous avez confiance. Je ne vois aucune raison pour que cela change entre les environnements, à moins que vous ne commettiez l'erreur d'utiliser des certificats auto-signés pour les serveurs de test: une erreur car cela signifie que vous utilisez des chemins de code différents en test et en production.
Marquis of Lorne
41

cacerts est l'endroit où Java stocke les certificats publics des autorités de certification racine. Java utilise des cacerts pour authentifier les serveurs.

Keystore est l'endroit où Java stocke les clés privées des clients afin de pouvoir les partager avec le serveur lorsque le serveur demande l'authentification du client.

Aravind Yarram
la source
@dimas Evidemment, mais ce qu'il veut vraiment dire, ce sont des «demandes».
Marquis of Lorne
1
@ user207421 Je crois en cette réponse que l'application Java joue le rôle d'un client http et l'url http que notre application Java appelle est l'application serveur. Ainsi, KeyStore de notre application Java cliente doit avoir à la fois clé privée + certificat (clé publique signée) et envoyer uniquement le certificat à l'application serveur, n'est-ce pas? Et si l'application serveur est également une application Java, elle vérifie le certificat envoyé par notre application client Java, en utilisant son propre fichier cacert, n'est-ce pas?
user104309
0

Les cacerts sont des détails d'autorités de signature de confiance qui peuvent émettre des certificats. C'est ce que la plupart des navigateurs ont en raison des certificats jugés authentiques. Keystone dispose de certificats liés à votre service pour authentifier les clients.

Mâchoire
la source
-2

Vérifiez votre chemin JAVA_HOME. As systems recherche un fichier java.policy qui se trouve dans JAVA_HOME/jre/lib/security. Votre JAVA_HOME doit toujours être ../JAVA/JDK.

naveen verma
la source
3
merci pour l'effort mais vous devriez lire et comprendre la réponse des EJP.
dimas