Truststore et un fichier de Définitions
Quelle est la différence entre un fichier de clés et d'un truststore?
Vous devez vous connecter pour publier un commentaire.
Quelle est la différence entre un fichier de clés et d'un truststore?
Vous devez vous connecter pour publier un commentaire.
Un fichier de clés contient les clés privées et les certificats avec leurs clés publiques.
Un truststore contient des certificats à d'autres parties que vous vous attendez à communiquer avec, ou par des Autorités de certification de confiance à identifier les autres parties.
TrustStore
soi. Ou je ne pouvais pas le trouver dans le java docs (par exemple,java.security.TrustStore
). Lorsque nous voulons faire confiance à une Autorité de certification, il est approuvé par le biais d'unKeyStore
(et leKeyStore
est passé dans leTrustManagerFactory
).KeyStore.load(InputStream is, char[] password)
(docs) peut prendre un mot de passe nul et puis, il permettra d'accéder aux certificats publics. C'est le code qui veut parcourir un truststore n'a pas besoin de connaître le mot de passe (pour de très bonnes raisons!)Un fichier de clés contient les clés privées. Vous avez seulement besoin de cela si vous êtes
un serveur, ou si le serveur requiert une authentification client.
Un truststore contient des certificats d'autorité de certification de confiance. Si votre serveur
le certificat est signé par une autorité de certification reconnue, le défaut truststore
livré avec le JRE, déjà confiance (car il déjà
les fiducies de confiance Sae), de sorte que vous n'avez pas besoin de construire votre propre,
ou ajouter quoi que ce soit à la une de la JRE.
Source
Dans l'établissement d'une connexion SSL le but de trustStore est de vérifier les informations d'identification et le but de fichier de clés est de fournir des informations d'identification.
keyStore
keyStore Java magasins de clés privées et les certificats correspondant à leurs clés publiques et le besoin si vous êtes Serveur SSL SSL requiert l'authentification du client.
TrustStore
TrustStore magasins de certificats de tiers, votre application Java de communiquer, ou de certificats signés par une autorité de certification(certificat autorités comme Verisign, Thawte, Geotrust ou GoDaddy) qui peut être utilisé pour identifier les tiers.
TrustManager
TrustManager détermine si la connexion à distance doit être de confiance ou pas c'est à dire si distant partie est bien qui il prétend et KeyManager décide d'authentification des informations d'identification doivent être envoyées à l'hôte distant pour l'authentification lors de la connexion SSL.
Si vous êtes un Serveur SSL, vous allez utiliser la clé privée cours de l'algorithme d'échange de clés et d'envoyer les certificats correspondant à votre public des clés pour le client, ce certificat est acquis à partir du fichier de clés. Sur SSL côté client, si son écrit en Java, il utilise des certificats stockés dans trustStore pour vérifier l'identité du Serveur. Les certificats SSL sont les plus couramment vient comme .cer fichier qui est ajouté dans le fichier de clés ou trustStore en utilisant un utilitaire de gestion de clé par exemple keytool.
Source: http://javarevisited.blogspot.ch
Vous pourriez également être intéressé par le écrivez-up de Soleil, dans le cadre de la norme JSSE documentation:
http://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#Stores
Généralement, la banque de confiance est utilisé pour stocker uniquement les clés publiques, à des fins de vérification, comme avec X. 509 de l'authentification. De la gestion des fins, il est assez commun pour les administrateurs ou développeurs simplement un amalgame entre les deux dans un seul magasin.
Voici la description de la Java docs à Java Secure Socket Extension (JSSE) Guide de Référence. Je ne pense pas que cela vous dit quelque chose de différent de ce que les autres ont dit. Mais il fournit une référence officielle.
Première et la principale différence entre trustStore et le fichier de clés est que trustStore est utilisé par TrustManager pour déterminer si la connexion à distance doit être de confiance, fichier de clés est utilisé à partir de KeyManager de décider lequel les informations d'authentification doivent être envoyées à l'hôte distant pour l'authentification lors de la connexion SSL.
Une autre différence est que le fichier de clés théoriquement contient des clés privées est requise uniquement si vous utilisez un Serveur de connexion SSL ou vous avez activé l'authentification du client sur le côté serveur et d'autre part trustStore magasins de clés publiques ou des certificats de CA (autorité de certification), qui sont utilisés pour la confiance partie à distance ou une connexion SSL.
En fait, vous pouvez stocker dans le même fichier à la fois des clés privées et publiques,
étant donné que l'outil de gestion de ces fichiers est le même (keytool),
donc vous pourriez utiliser un seul fichier pour les deux fins, mais vous
probablement ne devrait pas.
Au moins sur mon Mac OSX le stockage par défaut est
${user.home}/.keystore
, et la valeur par défaut trustStore est/System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts
.Si vous voulez les remplacer, vous devez ajouter les paramètres de la JVM
-Djavax.net.ssl.keyStore /path/to/keyStore
ou-Djavax.net.ssl.trustStore /path/to/trustStore
. Vous pouvez égalementbesoin de définir le mot de passe du fichier de clés en cas de
java.security.UnrecoverableKeyException: Password must not be
, à l'aide du paramètrenull
-Djavax.net.ssl.trustStorePassword=password
ou-Djavax.net.ssl.trustStorePassword=password
Source Principale: