【发布时间】:2012-03-12 05:40:21
【问题描述】:
我正在尝试使用 X509 证书/M2Crypto.SSL 进行对等身份验证
我在客户端 (hostC) 上生成一个根 CA(颁发者和主题 = ca_hostC)
我在本地使用此 CA 签署客户端证书(颁发者:ca_hostC,主题:hostC)
我在 hostS 上生成一个 CSR,将其复制到 hostC,使用步骤 1 中的根 CA 对其进行签名,然后将 ca_cert 和签名证书移至 hostS。
我生成上下文:
import M2Crypto.SSL as SSL
ctx = SSL.Context('tlsv1')
ctx.load_cert('x.crt', 'private/x.key')
ctx.load_verify_locations(cafile='ca.crt')
ctx.set_verify ( SSL.verify_peer | SSL.verify_fail_if_no_peer_cert , 0, verify_callback)
我连接:
s = SSL.Connection(ctx)
s.connect(server_address)
但在客户端我得到
ERROR: 20
unable to get local issuer certificate
但是,当我打印从服务器收到的证书的主题和颁发者时,我看到了正确的信息。此外,可以从 openssl 命令行实用程序验证证书。
有什么想法吗??
【问题讨论】:
标签: python ssl openssl x509 m2crypto