J'ai deux certificats, un root.crt
et un client.crt
qui a été signé par root.key
.
Je veux vérifier que le client.crt
a en effet été signé par root.key
, de le faire, en utilisant OpenSSL sur la borne, je fais comme ceci:pyOpenSSL "openssl vérifier -CAfile root.crt client.crt" équivalent
$ openssl verify -CAfile root.crt client.crt
> client.crt: OK
Mais lorsque vous utilisez pyOpenSSL, après la documentation et this blog post, j'ai essayé quelque chose comme ceci:
client_cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, file('client.crt').read())
root_cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, file('root.crt').read())
store = OpenSSL.crypto.X509Store()
store.add_cert(root_cert)
ctx = OpenSSL.crypto.X509StoreContext(store, client_cert)
ctx.verify_certificate()
Mais je reçois cette erreur:
X509StoreContextError: [2, 1, 'unable to get issuer certificate']
Alors qu'est-ce qui me manque?