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.

40
demandé sur Shashank Agrawal 2011-04-19 01:59:18

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:

  1. propriété du système javax.net.ssl.trustStore
  2. java-home/lib/security/jssecacerts
  3. 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.

27
répondu Lee Chee Kiam 2016-01-11 11:07:47

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.

10
répondu Chris 2016-01-11 11:08:34

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.

4
répondu user207421 2014-02-25 01:12:44