Je suis sérieusement confus sur les différences entre les fichiers cacerts
et jssecacerts
.
Je sais que par défaut Java recherche le fichier jssecacerts
puis le fichier cacerts
.
Mais à quoi sert le fichier jssecacerts
?
Je crois comprendre que si un nouveau fichier de clés certifiées doit être utilisé, une copie de cacerts
doit être créée et toutes les nouvelles autorités de certification de confiance doivent être ajoutées à cette copie. La copie de cacerts
(avec les nouvelles autorités de certification) doit ensuite être référencée par le -Djavax.net.ssl.trustStore
propriété système. De cette façon, les autres applications Java qui s'exécutent sur cette machine ne feront pas accidentellement confiance aux autorités de certification non par défaut.
De Guide de référence Java ™ Secure Socket Extension (JSSE) , TrustManagerFactory
utilise les étapes suivantes pour essayer de trouver du matériel de confiance:
javax.net.ssl.trustStore
Java-home/lib/security/jssecacerts
Java-home/lib/security/cacerts
(expédié par défaut)Je pense que cela est basé sur la convention sur le concept de configuration. Sans effort de codage supplémentaire, cacert
sera utilisé. Pour les certificats CA/signature supplémentaires privés, un développeur peut utiliser la première ou la deuxième méthode, où l'ancien peut simplement contenir un certificat particulier mais contient plus tard une liste de certificats.
Si je comprends bien, le fichier cacerts
est le fichier par défaut livré.
S'il existe un fichier jssecacerts
, il est utilisé exclusivement - pas en plus du fichier cacerts
.
Ma recommandation: conservez le fichier cacerts
, copiez-le dans jssecacerts
et ajoutez tous les certificats de CA/signature privés nécessaires au fichier jssecacerts
.
Bonne question. Je pense que cela découle du fait historique que JSSE était autrefois un module complémentaire. JSSE autorise plusieurs fournisseurs, donc peut-être que jssecacerts
est uniquement pour le fournisseur JSSE, et d'autres fournisseurs peuvent utiliser le leur.
Mais qui a utilisé des cacerts avant JSSE est une autre question.