[Question]:Issue with Invoke Component

这个报错是访问的远程服务器证书不合法(缺少 Subject Key Identifier 扩展)导致的 SSL 校验失败,并非 RAGFlow 自身 Bug。优先排查目标 API 的证书配置,或通过代理中转、修改源码方式绕过校验。

快速结论:这个报错是访问的远程服务器证书不合法(缺少 Subject Key Identifier 扩展)导致的 SSL 校验失败,并非 RAGFlow 自身 Bug。优先排查目标 API 的证书配置,或通过代理中转、修改源码方式绕过校验。

适用环境:RAGFlow 的 Agent 功能,使用 Http Request(Invoke)组件调用外部 HTTPS API 时触发;涉及 Python SSL 证书校验机制。

最快修复方案:暂无确认的一步修复方案。可优先尝试使用代理(如本地 nginx、mitmproxy)中转请求,由代理处理 SSL 终止并信任远程证书。

注意事项:修改源码添加 "verify": False 会完全禁用 SSL 验证,存在安全风险且升级后可能失效,仅建议用于测试环境。

问题场景

用户在 RAGFlow 的 Agent 中使用 Http Request(Invoke)组件调用台湾政府公开数据 API(data.gcis.nat.gov.tw)时反复报错,而调用其他 API 地址正常。问题指向该特定域名的 SSL 证书验证失败。

报错原文

"HTTPSConnectionPool(host='data.gcis.nat.gov.tw', port=443): Max retries exceeded with url: /od/data/api/5F64D864-61CB-4D0D-8AD9-492047CC1EA6?%24format=json&%24filter=Business_Accounting_NO%20eq%2020828393&%24skip=0&%24top=50 (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Missing Subject Key Identifier (_ssl.c:1032)')))"

原因分析

该报错的直接原因是远程服务器 data.gcis.nat.gov.tw 的 SSL 证书缺少 Subject Key Identifier 扩展,导致 Python 的 SSL 校验机制在验证证书链时判定证书不合法。即使证书在其他方面看起来有效,也会被拒绝。其他 API 正常是因为它们的证书结构完整。RAGFlow 的 Invoke 组件在 _send_request 方法中未传入 verify 参数,也没有提供 UI 选项来关闭或自定义 SSL 校验,因此无法通过组件配置直接绕过。

环境排查

  • 确认 RAGFlow 版本及部署方式(Docker、源码运行等)
  • 检查 Python 版本及 requests 库版本(影响 SSL 校验行为)
  • 确认目标 API 的 SSL 证书是否包含 Subject Key Identifier 扩展(可通过浏览器或 openssl s_client 命令检查)
  • 确认是否已配置代理环境变量(HTTP_PROXY/HTTPS_PROXY

解决步骤

  1. 联系 API 提供方:data.gcis.nat.gov.tw 的管理员反馈证书缺少 Subject Key Identifier 的问题,请求重新签发合规证书——这是最彻底的修复方式。
  2. 使用代理方案:在本地配置 nginx 或 mitmproxy,将请求先发送到代理,由代理负责 SSL 终止并信任远程证书,再由代理转发到目标 API。在 RAGFlow 的 Invoke 组件中将 URL 指向代理地址即可。
  3. 修改源码(测试用途):找到 agent/component/invoke.py 文件,在 _send_request 方法的 request_kwargs 字典中添加 "verify": False。此操作会完全禁用 SSL 证书验证,存在中间人攻击风险,且升级 RAGFlow 后修改会被覆盖。
  4. 关注官方进展:RAGFlow 已有相关功能请求(Issue #16635),希望在连接器中增加 SSL 验证选项。如有需要可在该 Issue 下留言,或新建 Issue 请求为 Invoke/Http Request 组件增加 verify_ssl 开关。

验证方法

完成上述任一步骤后,重新在 Agent 中执行该 Http Request 组件,调用之前报错的 URL。如果请求成功返回数据且不再出现 SSLCertVerificationError 报错,则说明问题已解决。若使用代理方案,同时确认其他 API 调用仍正常工作。

参考来源

infiniflow/ragflow #18186

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18306

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注