PAYATHON 2026

Windows 11 上 openEO 连接 CDSE 出现 SSLError 怎么处理?

数据小许

结论

报错出现在 openEO 完成 CDSE 身份认证之前。Python 的 HTTPS 请求无法验证 openeo.dataspace.copernicus.eu 返回的证书链。仅凭这条错误,无法判断原因是本机 CA 证书过期、网络代理替换了证书,还是其他网络配置问题。可以按以下步骤排查。

先更新 certifi 并复现

requests 通常使用 certifi 提供的 CA 证书包。请先在运行脚本的同一个 Python 环境中更新它:

python -m pip install --upgrade certifi

然后用 requests 单独测试 HTTPS 连接:

import certifi
import requests

url = "https://openeo.dataspace.copernicus.eu"
response = requests.get(url, verify=certifi.where(), timeout=30)
print(response.status_code)

如果这段代码也报相同的证书错误,说明问题出在 HTTPS 证书验证或当前网络路径上,尚未进入 openEO 的认证流程。如果请求成功,再检查 openEO、requests 和 certifi 是否安装在脚本实际使用的 Python 环境中:

python -m pip show openeo requests certifi

检查代理和组织 CA 证书

如果当前网络使用公司代理、HTTPS 检查或安全软件,代理可能会用自己的证书替换站点证书。浏览器能打开网站,并不能证明 Python 使用的 CA 证书包也信任这张替换后的证书。

可以换到不经过该代理的网络,再运行上面的 requests 测试。如果请求在那里成功、在原网络失败,请向网络管理员索取代理的根 CA 证书 PEM 文件,并确认其来源可信。然后在当前 PowerShell 会话中设置:

$env:REQUESTS_CA_BUNDLE = "C:\path\to\organization-ca.pem"
python .\your_script.py

将路径替换为实际的 PEM 文件路径。REQUESTS_CA_BUNDLE 会让使用 requests 的程序从指定文件读取 CA 证书。如需同时信任常规公共 CA,请确保该文件包含所需的完整 CA 链,或按组织提供的方式配置证书包。

注意事项

不要使用 verify=False 关闭证书验证来绕过错误,否则连接将无法校验服务端身份。更新 certifi 后如果问题仍然存在,且当前网络没有使用代理,请检查系统日期和时间,并收集网络环境、requests 测试结果及完整错误信息,以便进一步定位。

备注:内容仅供参考。