gpt4 book ai didi

python - 修补 python eventlet 以解决 Ubuntu 12.04 中的 OpenSSL TLS 1.1 错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:28 25 4
gpt4 key购买 nike

我刚遇到一个 bug in OpenSSL in Ubuntu 12.04 with TLS connections我需要解决它。错误简介 - 在 Ubuntu 12.04 上,OpenSSL 实现中的错误导致对使用 TLS 1.1 的 HTTPS 的各种调用随机失败。

上面的链接还提供了通常的 python 解决方法,它基本上强制使用 TLS 1.0 而不是 TLS 1.1。然而,这种解决方法对我来说开箱即用,因为我使用的是实现非阻塞 HTTP 请求的 eventlet 库。

据我所知 - eventlet 库重新定义了一些与此事相关的类,特别是 - 我需要修补以强制执行 TLS 1.0 的 httplib.HTTPSConnection 类。

所以问题是 - 我究竟需要在 eventlet 中修补什么,或者重新定义什么以通过 eventlet 为非阻塞 HTTP 调用强制执行 TLS 1.0 连接?

最佳答案

首先,您应该升级eventlet。截至 2013-09,最新版本为 0.14,自 0.9.16 以来我们修复了大量错误。

其次,那里提供的解决方案有点过于复杂,只修复了httplib。如果他们为 ssl 提供解决方案,它也会修复 HTTPS 并使用 eventlet。

这是修复所有 SSL 套接字的 Python 2.6+ 的更简单版本:

import functools
import ssl

old_init = ssl.SSLSocket.__init__

@functools.wraps(old_init)
def ubuntu_openssl_bug_965371(self, *args, **kwargs):
kwargs['ssl_version'] = ssl.PROTOCOL_TLSv1
old_init(self, *args, **kwargs)

ssl.SSLSocket.__init__ = ubuntu_openssl_bug_965371

我现在无法访问损坏的系统,所以我无法真正测试它。不会破坏 openssl 的良好版本。

关于python - 修补 python eventlet 以解决 Ubuntu 12.04 中的 OpenSSL TLS 1.1 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18807819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com