首页 文章

创建 Headers 为ssl.py的python脚本后出现文件错误

提问于
浏览
0

回溯(最近一次调用最后一次):文件"ssl-common.py",第14行,在s = ctx.wrap_socket(s,server_hostname = dst [0])文件"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py",第363行,在wrap_socket _context = self)文件"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py",第611行,在 init self.do_handshake()文件"/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py",第840行,在do_handshake中self._sslobj.do_handshake()socket.error:[Errno 54]连接由同行重置

当我尝试在Mac上运行以下脚本时,我收到上述错误 . 我已经通过自制软件重新安装openssl,以及通过pip重新安装

import socket
import ssl
import OpenSSL.crypto as crypto

dst = ('1.2.3.4',443)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ret = s.connect_ex(dst)
if ret == 0 :
    ctx = ssl.create_default_context()
    ctx.check_hostname = False
    ctx.verify_mode = ssl.CERT_NONE
    s = ctx.wrap_socket(s, server_hostname=dst[0])

    # get certificate
    cert_bin = s.getpeercert(True)
    x509 = crypto.load_certificate(crypto.FILETYPE_ASN1,cert_bin)
    print(x509.get_subject().CN)
else :
    print "socket.connect_ex returned ", ret

1 回答

相关问题