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

如何解决Python3 Requests发起HTTPS请求时证书错误及401状态码问题

解决方案

1. 解决SSL证书验证报错

你的API服务用的是组织内部自签名的根证书,公网信任的CA库默认不包含该证书,所以会触发验证失败:

  • 找API运维人员索要服务对应的根CA证书(即openssl输出里CN为<你的组织名> Root Certification Authority的自签名证书),要求提供PEM格式文件,存到服务器路径比如/data/certs/internal_root.crt
  • 请求时将verify参数设为该证书路径即可,禁止使用verify=False,尤其是安全类API,跳过证书验证存在数据泄露、篡改风险
  • 之前你用系统ca-bundle不报错是因为内部根证书已经导入了服务器系统信任库,certifi模块的CA包是独立维护的,没有内置你们的内部证书,所以才会报错

2. 解决401未授权报错

你当前的payload写法不符合JSON规范,服务端无法正常解析请求参数,才会返回401:

  • 不要手动拼接JSON字符串,直接传Python字典给requests的json参数,框架会自动序列化为标准JSON,也不需要手动设置Content-Type头:
#!/usr/bin/env python3
import requests

url = "https://some.url.com/fol/something"
payload = {
    "userName": "user-name",
    "instanceName": "instance-name",
    "password": "user-password",
    "usersDomain": "DOMAIN"
}
headers = {
    "accept": "application/json"
}
# 替换为你实际存放内部根证书的路径
response = requests.post(
    url,
    json=payload,
    headers=headers,
    verify="/data/certs/internal_root.crt"
)
print(response.status_code)
print(response.text)
  • 如果修改后还是返回401,打印response.text查看服务端返回的具体错误描述,同时打开网页端的F12开发者工具,对比网页调用时的请求头、参数和你代码里的差异,确认是否需要额外携带Cookie、Authorization等鉴权字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:54:03