Python SSL wrap_socket失败,SSLError,Errno 336265218
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python SSL wrap_socket失败,SSLError,Errno 336265218,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2330字,纯文字阅读大概需要4分钟。
内容图文
![Python SSL wrap_socket失败,SSLError,Errno 336265218](/upload/InfoBanner/zyjiaocheng/722/f7b7707befd64a588711154be1996a6b.jpg)
我有简单的客户端/服务器SSL代码,在Python 3.2上运行良好.但是,我决定切换到2.7(由于第三方模块丰富),现在代码失败了.代码如下:
客户:
def connect(self):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.connect(('localhost', 4430))
self.ssl_sock = ssl.wrap_socket(self.sock, cert_reqs = ssl.CERT_NONE, ssl_version = ssl.PROTOCOL_TLSv1)
服务器:
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.sock.bind((self.hostname, 4430))
self.sock.listen(5)
while True:
self.newsocket, self.fromaddr = self.sock.accept()
self.ssl_sock = ssl.wrap_socket(
self.newsocket,
server_side = True,
certfile = "cert.pem",
ssl_version=ssl.PROTOCOL_TLSv1
)
self._handle_client(self.ssl_sock)
cert.pem(与server .py文件位于同一目录中):
-----BEGIN RSA PRIVATE KEY-----
(812 "random" characters here)
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
(1260 "random" characters here)
-----END CERTIFICATE-----
失败如下:
1.服务器等待self.sock.accept()
2.客户端连接self.sock.connect()
3.服务器进入wrap_socket,失败并出现以下错误:
Traceback (most recent call last):
File "C:\Program Files\Python27\lib\multiprocessing\process.py", line 258, in _bootstrap
self.run()
File "C:\workspace\projectc\server\server\clientlistener.py", line 49, in run
ssl_version=ssl.PROTOCOL_TLSv1
File "C:\Program Files\Python27\lib\ssl.py", line 381, in wrap_socket
ciphers=ciphers)
File "C:\Program Files\Python27\lib\ssl.py", line 141, in __init__
ciphers)
SSLError: [Errno 336265218] _ssl.c:351: error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib
附:
1)我对wrap_socket调用有所怀疑,因为即使我使用不存在的文件进行certfile,也会产生相同的错误.
2)我尝试在ssl上的python文档中使用替代包装(即使用ssl.SSLContext),并且奇怪的是’module’对象没有属性’SSLContext’,当它是ssl模块的一部分时.当我使用Python 3.2进行尝试时,这不是问题.
更新:
我发现问题只发生在我从Eclipse中“运行”时,而不是当我从单独的命令提示中运行这两个文件时.还在调查这个问题……
更新2:
我尝试了一个非常简单的客户端/服务器脚本与SAME代码,它的工作原理.现在,由于服务器代码位于多处理子进程(由主服务器进程启动)内,它似乎无法工作.有关?
解决方法:
问题解决了.我相信Eclipse持有一些剩余信息,但我从来没有弄清楚它持有什么信息.它可能与从python 3.2到2.7的迁移有关,尽管我之前已经在运行配置中对其进行了更改.重置Eclipse环境有效(仅重新启动计算机是不够的).
内容总结
以上是互联网集市为您收集整理的Python SSL wrap_socket失败,SSLError,Errno 336265218全部内容,希望文章能够帮你解决Python SSL wrap_socket失败,SSLError,Errno 336265218所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。