J'ai un certificat codé en Base64 ----- BEGIN CERTIFICATE ----- MIIGezCCBWOgAwIBA ...., comment obtenir les certificats racine et intermédiaire qui apparaissent dans le chemin de certification de il!Java - Obtenir la chaîne de certificat
1
A
Répondre
0
J'ai eu le même problème avant. Vous voyez, le certificat a un champ Issuer, qui a l'objet de l'émetteur.
Vous pouvez comparer cela, ou/et vous pouvez tester la signature. Seule l'autorité de certification peut vérifier la signature du certificat.
Quelque chose comme ceci:
//load all the ca certificates and get their public keys
caCertificate.getIssuerDN().equals(caCertificate[i].getSubjectDN());
// OR/AND
try {
verifySignature(certificate,
caCertificate[i].getPublicKey());
//issuer found
}
catch (Exception e) {
// not the issuer
}
Je n'ai pas testé le code, mais vous a eu l'idée.
EDIT:
Il y a quelques classes en java qui sont spécialement conçus pour la validation d'une chaîne. l'un d'eux est la classe CertPathBuilder
. Je suis toujours en train de faire des recherches sur la façon de l'utiliser. Je crée toujours avec les mauvais paramètres, je suppose ...
EDIT 2:
J'utilise quelque chose qui a été inspiré par this.
bonne chance