TrustAnchor
), auto-signée, connue de la terre entièreReprésentés par l’objet CertPath
Créés comme les certificats par une CertificateFactory
Il faut vérifier la validité :
Que chaque élément signe le suivant
Que le CA est valide
Pour cela, on utilise un CertPathValidator
CertPathValidator cpv = CertPathValidator.getInstance("PKIX");
il faut construire un objet PKIXParameters
avec la liste des CA :
PKIXParameters params = new PKIXParameters(ca);
si on souhaire vérifier la revocation (CRL ou OSCP)
PKIXRevocationChecker rc = (PKIXRevocationChecker)cpv.getRevocationChecker();
params.addCertPathChecker(rc);
on demande la vérification
CertPathValidatorResult cpvr = cpv.validate(path, params);
Chaque JVM vient avec sa liste de certificats racine, présent dans un keystore de mot de passe changeit
dans
/
path to JRE/lib/security/cacerts
Ça n’est donc pas le même que la liste du système
Sur MacOS, c’est le fichier /System/Library/Keychains/SystemRootCertificates.keychain
(à manipuler soit avec le Trousseau soit avec la commande security
)
Sous Linux, ils sont souvent dans /etc/ssl/certs
sous Windows, on peut y accéder avec la commande certmgr.msc
Ajouter la vérification des certificats dans l’exercice précédent