我有两个证书,一个是用来签署client.crt
的root.crt
。
我想要验证client.crt
是否确实是由root.key
签署的。
在终端上使用openssl,操作如下:
$ openssl verify -CAfile root.crt client.crt
> client.crt: OK
然而,使用pyOpenSSL - 遵循文档和这篇博客文章 - 我尝试了以下代码:
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()
我遇到了这个错误:
> X509StoreContextError: [2, 1, 'unable to get issuer certificate']
我错过了什么吗?
store.add_cert
命令中,cr
是什么意思? - Bogota