Je crois savoir que le keystore contient généralement les clés privées/publiques et que le trust store ne contient que les clés publiques (et représente la liste des parties de confiance avec lesquelles vous avez l'intention de communiquer). Eh bien, c'est ma première hypothèse, donc si ce n'est pas correct, je n'ai probablement pas très bien commencé...
J'étais cependant intéressé de comprendre comment / quand vous distinguez les magasins lorsque vous utilisez keytool.
Jusqu'à présent, j'ai créé un keystore en utilisant
keytool -import -alias bob -file bob.crt -keystore keystore.ks
qui crée mon fichier keystore.ks. Je réponds yes
à la question do I trust bob mais je ne sais pas si cela a créé un fichier keystore ou un fichier truststore ? Je peux configurer mon application pour utiliser le fichier comme l'un ou l'autre.
-Djavax.net.ssl.keyStore=keystore.ks -Djavax.net.ssl.keyStorePassword=x
-Djavax.net.ssl.trustStore=keystore.ks -Djavax.net.ssl.trustStorePassword=x
et avec System.setProperty( "javax.net.debug", "ssl")
Je peux voir le certificat sous les certifications de confiance (mais pas dans la section keystore). Le certificat particulier que j'importe n'a qu'une clé publique et j'ai l'intention de l'utiliser pour envoyer des informations à Bob via une connexion SSL (mais peut-être est-ce une autre question !).
Toute indication ou clarification serait très appréciée. Est-ce que la sortie de keytool est la même quelle que soit l'importation et c'est juste une convention qui dit que l'un est un keystore et l'autre un trust store ? Quelle est la relation avec l'utilisation de SSL, etc ?
0 votes
Je ne suis pas sûr de ce que vous voulez dire par "Le certificat particulier que j'importe n'a qu'une clé publique" : s'agit-il seulement d'une clé publique (c'est-à-dire pas un certificat) ou d'un certificat non-CA ?
0 votes
Hmmm, pas sûr. J'ai exporté à partir de mon navigateur comme un fichier PEM. Est-ce que cela aide ?
0 votes
Si c'est exporté depuis le navigateur, c'est probablement un certificat. S'agit-il d'un certificat de serveur (avec un CN ou un subjectAltName correspondant au nom d'un serveur) ? S'agit-il d'un certificat d'autorité de certification (regardez sous Contraintes de base, vous devriez être en mesure de le voir en utilisant votre navigateur).
2 votes
tl;dr : Les magasins de confiance contiennent des certificats de racine (CA) publics et de confiance, tandis que les magasins d'identité/de clés contiennent des certificats d'identité privés ; en termes de fichiers, toutefois, ils sont identiques.
0 votes
Il n'y a pas de différence technique, juste quelques éléments de logique et de confort pour séparer les certificats de confiance des certificats serveur/client.