J'ai trois certificats dans une chaîne:
- root.pem
- intermediaire.pem
- john.pem
Lorsque je les examine à l'aide de openssl x509 -in [filename] -text -noout
leur apparence, root.pem semble être auto-signé (Issuer == Subject), et le sujet de chaque certificat est l'émetteur du suivant, comme prévu.
Et en effet je peux vérifier la chaîne jusqu'au certificat intermédiaire:
$ openssl verify -CAfile root.pem root.pem
root.pem: OK
$ openssl verify -CAfile root.pem intermediate.pem
intermediate.pem: OK
Cependant, john.pem échoue:
$ openssl verify -CAfile root.pem -CAfile intermediate.pem john.pem
john.pem: C = CL, [...redacted data...]
error 2 at 1 depth lookup:unable to get issuer certificate
À ma connaissance, cela signifie que openssl n'est pas en mesure de trouver l'émetteur de intermediaire.pem. Ce qui n'a pas de sens puisque root.pem est bien l'émetteur de intermediaire.pem.
Qu'est-ce que je rate?
Edit: j'avais initialement posté une réponse disant que root.pem et intermediaire.pem devraient être concaténés dans un fichier, puis on devrait utiliser ce fichier comme paramètre pour -CAfile
. C'est faux, car cela fait implicitement confiance à intermediaire.pem, comme le souligne Johannes Pille . Lisez le lien qu'il a publié dans ma réponse supprimée: https://mail.python.org/pipermail/cryptography-dev/2016-August/000676.html