我正在尝试使用X509 certs/M2让对等身份验证正常工作加密.SSL在
我在客户机(hostC)上生成一个根CA(issuer&subject=CA_hostC)
我使用此CA在本地签署客户端证书(颁发者:CA_hostC,主题:hostC)
我在主机上生成一个CSR,将其复制到hostC,使用步骤1中的根CA对其进行签名,然后将CA证书和签名证书移动到主机上。
我生成上下文:
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)
我连接:
^{pr2}$但是在客户机上我得到了
ERROR: 20
unable to get local issuer certificate
但是,当我打印从服务器接收到的证书的主题和颁发者时,我看到了正确的信息。另外,可以从openssl命令行util验证证书。在
有什么想法吗??在
我觉得深度=0意味着无限深。 来自openssl documentation
深度:设置验证过程中使用链中深度证书的限制。如果证书链的长度超过允许的长度,则忽略超出限制的证书。生成的错误消息就好像这些证书不存在一样,很可能会发出一个X509\u V_ERR_UNABLE_GET_ISSUER_CERT_local。深度计数是
等等。将“最大深度”设置为2将允许级别0、1和2。默认深度限制为9,允许对等证书和其他9个CA证书。
相关问题 更多 >
编程相关推荐