使用OpenAI API遇APIConnectionError:本地虚拟环境SSL证书验证失败求助
问题描述
- OpenAI官方Python版Chat API示例代码在Google Colab可正常运行,但本地虚拟环境执行时抛出
APIConnectionError: Connection error,完整错误信息:ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1020)
- 使用同一API密钥,未开启VPN
- 已尝试执行命令
/Applications/Python*/Install\ Certificates.command,无效 - 官方curl版示例代码在本地Shell可正常运行
解决方案
以下是针对该SSL证书问题的几种可行解决方法:
方法1:指定系统CA证书路径给Python
虚拟环境可能未正确加载系统根证书,可手动指定证书路径:
- 找到系统CA证书文件路径:
- macOS:
/etc/ssl/cert.pem - Linux:
/etc/ssl/certs/ca-certificates.crt - Windows:可通过
C:\Windows\System32\certmgr.msc导出根证书,或使用certifi库的默认证书路径
- macOS:
- 在Python代码中添加环境变量配置:
import os # 以macOS为例,其他系统替换对应路径 os.environ['REQUESTS_CA_BUNDLE'] = '/etc/ssl/cert.pem' os.environ['SSL_CERT_FILE'] = '/etc/ssl/cert.pem' # 后续导入并使用OpenAI库 from openai import OpenAI client = OpenAI(api_key="你的API密钥") # 编写API调用代码
方法2:临时禁用SSL验证(仅测试用,生产环境禁止)
若仅需临时排查问题,可初始化OpenAI客户端时关闭SSL验证:
from openai import OpenAI import ssl client = OpenAI( api_key="你的API密钥", http_client=OpenAI.get_default_http_client().with_ssl_context(ssl._create_unverified_context()) )
注意:此方法跳过SSL证书验证,存在安全风险,仅用于问题排查。
方法3:更新虚拟环境中的certifi库
certifi是Python处理SSL证书的常用依赖,更新它可能修复证书链问题:
pip install --upgrade certifi
更新完成后重新运行代码。
方法4:检查本地代理/防火墙设置
即使未开启VPN,本地杀毒软件的SSL拦截、内网代理也可能替换证书:
- 临时关闭杀毒软件的SSL扫描功能
- 检查系统代理设置,确保无自动配置的代理
- 在Python代码中显式关闭代理:
import os os.environ['NO_PROXY'] = 'api.openai.com' os.environ['http_proxy'] = '' os.environ['https_proxy'] = '' # 再初始化OpenAI客户端
内容的提问来源于stack exchange,提问作者Ozgur Ozturk
相关产品推荐
相关产品推荐

