Pourquoi java a-t-il à la fois les fichiers cacerts et jssecacerts?
je suis sérieusement confus sur les différences entre cacerts
et jssecacerts
fichiers.
je sais que, par défaut, java ressemble pour l' jssecacerts
le fichier et ensuite l' cacerts
fichier.
mais quel est le but de la jssecacerts
fichier?
je crois comprendre que si une nouvelle librairie doit être utilisée, alors une copie de cacerts
devrait être faite et tous les nouveaux CAs de confiance devraient être ajoutés à cette copie. La copie de cacerts
(avec les nouvelles NCA) devrait alors être référencé par le -Djavax.net.ssl.trustStore
propriété du système. De cette façon, les autres applications java qui tournent sur cette machine ne feront pas accidentellement confiance à des CAs non-par défaut.
3 réponses
Guide de référence Java™ Secure Socket Extension (JSSE),TrustManagerFactory
utilise les étapes suivantes pour essayer de trouver la confiance matériau:
- propriété du système
javax.net.ssl.trustStore
java-home/lib/security/jssecacerts
java-home/lib/security/cacerts
(fourni par défaut)
je pense que c'est basé sur la convention plutôt que sur le concept de configuration. Sans effort supplémentaire de codage,cacert
sera utilisé. Pour les certificats privés supplémentaires de CA / signature, un développeur peut utiliser le premier ou le deuxième le premier peut simplement contenir un cert particulier, mais contient plus tard une liste de certs.
D'après ce que j'ai compris, le cacerts
le fichier est livré par défaut.
S'il y a un jssecacerts
fichier il est utilisé exclusivement à - pas en plus de l' cacerts
fichier.
ma recommandation: garder le cacerts
le fichier, copier jssecacerts
et d'ajouter une autorité de certification privée/Signer les certificats nécessaires à l' jssecacerts
fichier.
bonne question. Je pense que cela découle du fait historique que JSSE était autrefois un accessoire. JSSE autorise plusieurs fournisseurs, donc peut-être jssecacerts
est réservé au fournisseur de JSSE, et d'autres fournisseurs peuvent utiliser les leurs.
mais qui a utilisé cacerts avant JSSE est une autre question.