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

Python requests双端点调用:带证书请求后无证书请求报SSLError的解决方法

问题:requests调用不同API端点时客户端证书复用引发SSL错误

我正在使用Python的requests包进行API调用,需要对接两个不同的API端点:

  • 第一个是https://api.example.com,要求使用客户端证书;
  • 第二个是https://work.myserver.com,无需客户端证书。

但调用第一个带证书的端点后,后续调用第二个端点时会报错:

SSLError(SSLError(1, '[SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca'))

我猜测使用客户端证书发起请求后,后续所有请求无论哪个端点都会复用该证书。请问如何让requests仅在指定端点使用客户端证书,其他端点不使用?

我的代码如下:

import requests

# 设置密钥对路径
cert_path = "/etc/application/client.crt"
key_path  = "/etc/application/client.key"
keypair_paths = (cert_path, key_path)

response1 = requests.get(
    "https://api.example.com",
    cert=keypair_paths,
)

response2 = requests.get("https://work.myserver.com") # 该端点不需要客户端证书

我使用的requests版本是2.32.3。

更新:按照Andrej Kesely的建议,我尝试将请求放在requests.Session的with上下文管理器中,但问题未解决。目前我通过urllib库处理无需客户端证书的请求作为临时解决方案,但原问题仍未解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:32:15