是否可以重新配置 Python 以使用升级后的 openssl,而无需完全重建 Python?

是否可以重新配置 Python 以使用升级后的 openssl,而无需完全重建 Python?

我正在运行 CentOS 7 和以下版本的 Python...

[rails@server Python-3.7.0]$ python3 --version
Python 3.7.0

我最近升级了我的 openssl 版本...

 [rails@server Python-3.7.0]$ openssl version -a
OpenSSL 1.1.1g  21 Apr 2020
built on: Thu May  7 19:18:59 2020 UTC
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DZLIB -DNDEBUG
OPENSSLDIR: "/usr/local/openssl"
ENGINESDIR: "/usr/local/openssl/lib/engines-1.1"
Seeding source: os-specific

但是,我的 Python 安装仍然采用旧版本...

[rails@server html]$ python manage.py check_duplicates
DEPRECATION: The OpenSSL being used by this python install (OpenSSL 1.0.2k-fips  26 Jan 2017) does not meet the minimum supported version (>= OpenSSL 1.1.1) in order to support TLS 1.3 required by Cloudflare, You may encounter an unexpected reCaptcha or cloudflare 1020 blocks.

我能做些什么来让 Python 识别新版本,还是我只能从 tar ball 重建 Python?

答案1

考虑不要重建软件堆栈,而是升级操作系统发行版,以便升级该软件和其他软件。将维护自己的安全更新的额外持续工作减少到一次性升级项目。

例如,早在 2019 年,就有一篇博客文章解释说,RHEL 8 具有已测试 TLS 1.3。从那时起,CentOS 就被淘汰并被 Stream 取代,因此您的选择变得有些复杂。但无论您最终使用 RHEL 还是重建或其他版本,想法都是一样的。升级您的发行版,您就可以在获得安全更新的同时使用该功能。

或者,为了感谢维护自己的构建工作,请查看软件的上游和发行版。在本例中,是 openssl 和(大概是)pyOpenSSL。期望评估您是否需要进行各种安全更新或修复。从这里维护您的 rpm 包,将较新的 TLS 绑定应用于较旧的 python。

相关内容