Mam dwa certyfikaty, root.crt
i client.crt
, który został podpisany przez root.key
.
Chcę sprawdzić, czy client.crt
rzeczywiście podpisane przez root.key
, aby to zrobić, używając OpenSSL na terminalu, robię tak:pyOpenSSL "openssl weryfikuj -CAfile root.crt client.crt" odpowiednik
$ openssl verify -CAfile root.crt client.crt
> client.crt: OK
Ale podczas korzystania pyOpenSSL, po documentation i this blog post, próbowałem coś tak:
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()
Ale wtedy ten błąd:
X509StoreContextError: [2, 1, 'unable to get issuer certificate']
Więc czego mi brakuje?