You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python 3.6.5 OpenSSL客户端中仅启用TLS 1.2并禁用旧版协议

实现Python TLS客户端仅支持TLS 1.2

没问题,我来帮你搞定这个需求——让你的Python TLS客户端只支持TLS 1.2,彻底禁用那些老旧不安全的协议版本(TLS 1.0、TLS 1.1、SSLv3、SSLv2)。结合你用的Python 3.6.5(Windows 10环境+OpenSSL),具体实现如下:

核心思路

要达到目标,我们需要做两件关键的事:

  • 禁用所有不需要的旧协议版本,通过ssl模块提供的OP_NO_*选项
  • 明确限定客户端只能使用TLS 1.2作为唯一的协议版本

完整代码示例

下面是可直接使用的代码,我会在后面解释每个关键部分:

import ssl
import urllib.request

# 创建默认安全SSL上下文(自带基础安全配置)
ctx = ssl.create_default_context()

# 叠加禁用旧协议的选项:把这些选项按位或到上下文的options里
ctx.options |= ssl.OP_NO_TLSv1    # 禁用TLS 1.0
ctx.options |= ssl.OP_NO_TLSv1_1  # 禁用TLS 1.1
ctx.options |= ssl.OP_NO_SSLv3    # 禁用SSLv3
ctx.options |= ssl.OP_NO_SSLv2    # 禁用SSLv2

# 明确限定协议版本范围:最小和最大都设为TLS 1.2
ctx.min_version = ssl.TLSVersion.TLSv1_2
ctx.max_version = ssl.TLSVersion.TLSv1_2

# 可选:指定安全的TLS 1.2密码套件(进一步提升安全性,可根据需求调整)
ctx.set_ciphers('ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256')

# 使用配置好的上下文发起HTTPS请求
try:
    with urllib.request.urlopen('https://your-target-server.com', context=ctx) as response:
        print("请求成功,响应状态码:", response.getcode())
        # 处理响应内容
        # content = response.read()
except ssl.SSLError as e:
    print("SSL连接错误:", str(e))

关键细节说明

  1. create_default_context()的作用:这个方法会创建一个带有安全默认设置的上下文(比如禁用SSLv3等),但我们需要额外禁用TLS 1.0和1.1,所以叠加了对应的OP_NO_*选项。
  2. 限定协议版本范围:通过min_version和max_version强制客户端只使用TLS 1.2,这是双重保障——即使options的设置有遗漏,版本范围限定也能确保不会使用其他协议。
  3. 密码套件配置:指定仅支持TLS 1.2兼容的安全密码套件,避免使用弱加密算法。如果你不需要这么严格,也可以省略这一步,但建议保留以提升安全性。
  4. 版本兼容性:Python 3.6.5已经支持ssl.TLSVersion枚举和所有上述OP_NO_*选项,和你使用的版本完全匹配,不用担心兼容性问题。

另外,你可以通过以下代码检查当前Python环境的OpenSSL版本,确保它支持TLS 1.2:

import ssl
print("OpenSSL版本:", ssl.OPENSSL_VERSION)

只要版本在1.0.1及以上,就支持TLS 1.2,Python 3.6.5搭配的OpenSSL版本通常满足这个要求。

内容的提问来源于stack exchange,提问作者user9371654

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:31:52