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

向Supabase表插入数据时遇SSL证书验证失败的解决方法

问题:Supabase插入数据时遭遇SSL证书验证失败错误

执行Supabase数据插入操作时触发以下错误:

httpx.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)

当前代码如下:

import os
from dotenv import load_dotenv, find_dotenv
from supabase import create_client, Client
import requests

load_dotenv()

os.environ['CURL_CA_BUNDLE']='ZscalerRootCertificate-2048-SHA256.crt'
os.environ['REQUESTS_CA_BUNDLE'] = 'ZscalerRootCertificate-2048-SHA256.crt'
SUPABASE_URL = os.environ['SUPABASE_URL']
SUPABASE_KEY = os.environ['SUPABASE_KEY']


supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY)

已通过环境变量指定CA证书文件,但执行以下插入语句时仍报错:

response = supabase.table('chat_history_projectsearch').insert(data).execute()

解决方法

Supabase Python客户端底层使用httpx库发起请求,之前配置的CURL_CA_BUNDLE和REQUESTS_CA_BUNDLE对httpx不生效,需针对httpx做适配:

  • 通过环境变量指定httpx的CA证书
    在代码中添加针对httpx的环境变量配置:

    os.environ['HTTPS_CA_BUNDLE'] = 'ZscalerRootCertificate-2048-SHA256.crt'
    

    该环境变量会被httpx识别,用于SSL证书验证流程。

  • 手动构建带CA证书的httpx客户端
    若环境变量方式无效,可直接构建自定义httpx.Client并传入Supabase客户端:

    import httpx
    
    # 配置带CA证书的httpx客户端
    httpx_client = httpx.Client(verify='ZscalerRootCertificate-2048-SHA256.crt')
    # 创建Supabase客户端时关联自定义httpx实例
    supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY, client=httpx_client)
    
  • 确认证书文件有效性

    • 确保证书文件路径正确,若使用相对路径需放在代码可读取的目录下,建议优先使用绝对路径
    • 检查证书文件是否完整、未损坏,可通过openssl工具验证证书格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:55:05