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

如何在Python Requests中限制仅使用TLS1.2连接(含POST/GET)

如何限制requests仅使用TLS 1.2进行POST/GET请求

没问题,这事儿其实很简单——只需要给requests的Session加个自定义适配器,强制它只用TLS 1.2建立连接就行,不管是POST还是GET请求都能这么配置。我帮你把你的POST代码改好,再给你GET请求的示例。

1. 先定义强制TLS 1.2的适配器

我们需要写一个自定义的HTTPAdapter,它会在初始化连接池的时候指定SSL版本为TLS 1.2,拒绝任何低于这个版本的连接:

import ssl
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.ssl_ import create_urllib3_context
from urllib3.util.retry import Retry

class TLS12Adapter(HTTPAdapter):
    def init_poolmanager(self, *args, **kwargs):
        # 强制使用TLS 1.2协议
        context = create_urllib3_context(ssl_version=ssl.PROTOCOL_TLSv1_2)
        kwargs['ssl_context'] = context
        super().init_poolmanager(*args, **kwargs)

2. 修改你的POST重试会话

把这个适配器和重试逻辑结合,挂载到你的Session里,这样所有通过这个Session发送的POST请求都会强制用TLS 1.2:

def retry_session(retries, session=None, backoff_factor=0.3, status_forcelist=(500, 502, 503, 504)):
    session = session or requests.Session()
    
    # 配置重试规则
    retry = Retry(
        total=retries,
        read=retries,
        connect=retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist
    )
    
    # 把重试逻辑和TLS 1.2强制规则合并到同一个适配器
    tls_retry_adapter = TLS12Adapter(max_retries=retry)
    session.mount('https://', tls_retry_adapter)
    
    return session

# POST请求使用示例
def send_post_request(url, payload):
    session = retry_session(retries=3)
    response = session.post(url, json=payload)
    response.raise_for_status()  # 主动抛出HTTP错误
    return response.json()

这样配置后,如果服务器不支持TLS 1.2,请求会直接抛出SSL相关错误,完全不会建立不符合要求的连接,刚好满足你们安全团队的要求。

3. GET请求的配置

GET请求的配置和POST完全一致,只要用这个配置好的retry_session发送请求就行,比如:

def send_get_request(url, query_params=None):
    session = retry_session(retries=3)
    response = session.get(url, params=query_params)
    response.raise_for_status()
    return response.json()

不管是GET还是POST,只要是通过这个Session发送的HTTPS请求,都会严格使用TLS 1.2协议,拒绝其他版本的连接。

额外提醒:如果你的请求是HTTP协议(非HTTPS),那TLS版本的配置就不会生效,但相信你们安全团队也会要求只发送HTTPS请求对吧?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:55:26