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

PythonAnywhere普通用户解决Python HTTPS请求SSL证书验证失败问题

解决PythonAnywhere无root权限下SSL证书验证失败问题

方法1:直接在HTTPSConnection中指定证书文件

http.client的HTTPSConnection类支持通过ca_certs参数指定自定义CA证书文件,只需传入你已下载的mycertfile.pem的绝对路径(必须是你用户目录下的路径,比如/home/你的用户名/mycertfile.pem):

import http.client

# 替换为你实际的证书文件路径
cert_path = "/home/你的用户名/mycertfile.pem"
conn = http.client.HTTPSConnection(
    "www.tesourodireto.com.br",
    ca_certs=cert_path
)
conn.request("GET", "/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json")

# 获取并处理响应
response = conn.getresponse()
data = response.read().decode()
print(data)
conn.close()

方法2:通过环境变量指定全局自定义CA证书

Python的SSL模块会读取SSL_CERT_FILE环境变量作为CA证书来源,你可以在脚本内或运行脚本前设置该变量:

脚本内设置

import os
# 设置为你的证书文件绝对路径
os.environ["SSL_CERT_FILE"] = "/home/你的用户名/mycertfile.pem"

# 之后正常使用http.client
import http.client
conn = http.client.HTTPSConnection("www.tesourodireto.com.br")
conn.request("GET", "/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json")

# 处理响应
response = conn.getresponse()
print(response.read().decode())
conn.close()

控制台运行前设置

在PythonAnywhere的bash控制台中先设置环境变量再运行脚本:

export SSL_CERT_FILE=/home/你的用户名/mycertfile.pem
python3 your_script_name.py

方法3:使用requests库指定证书(推荐)

如果可以安装第三方库,PythonAnywhere普通用户可以用pip install --user requests安装requests库,它的get方法支持通过verify参数指定证书文件:

import requests

url = "https://www.tesourodireto.com.br/json/br/com/b3/tesourodireto/service/api/treasurybondsinfo.json"
cert_path = "/home/你的用户名/mycertfile.pem"

response = requests.get(url, verify=cert_path)
# 直接解析JSON响应
print(response.json())

注意:所有方法中的证书路径必须是你用户目录下的绝对路径,不能使用系统目录(无权限访问)。

内容的提问来源于stack exchange,提问作者Marcos Cesar da Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:45:32