首页 > 编程语言 > 详细

python使用ssl的单向认证和双向认证的客户端代码

时间:2020-09-16 14:43:09      阅读:155      评论:0      收藏:0      [点我收藏+]

参考文档:https://blog.csdn.net/wuliganggang/article/details/78428866

 

实现:

1. 单向认证:client需要一个ca.crt,校验服务器的合法性。

def connectSSL(self, _tcp_ip, _tcp_port, _ca_certs=ca.crt):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    sk = ssl.wrap_socket(s, cert_reqs=ssl.CERT_REQUIRED, ca_certs=_ca_certs)

    try:
        sk.connect((_tcp_ip, _tcp_port))
    except Exception, e:
        logging.error(str(e))
        exit(1)

 

2. 双向认证:client对server进行校验,同时server也对client进行校验,client需要client.key 、client.crt 、ca.crt

def connectSSL(self, _tcp_ip=192.168.1.100, _tcp_port=10000, _keyfile=user.key, _certfile=user.pem, _ca_certs=ca.crt):
            
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    sk = ssl.wrap_socket(s, keyfile=_keyfile, certfile=_certfile, cert_reqs=ssl.CERT_REQUIRED, ca_certs=_ca_certs)

    try:
        sk.connect((_tcp_ip, _tcp_port))
        print "cert type: " , sk.getpeercert()
    except Exception, e:
        logging.error(str(e))
        exit(1)

 

注:python2.7.9版本后支持对证书加密

 

python使用ssl的单向认证和双向认证的客户端代码

原文:https://www.cnblogs.com/workingdiary/p/13678922.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!