Agents talking to MCP Server, SSL verification is failing. Has some been through this?

用户使用 CrewAI 的 MCPServerAdapter 连接已部署的 MCP Server(运行在非 localhost 地址)。本地运行正常,但更换为远程 URL 后触发 SSL 验证错误。

Agents talking to MCP Server, SSL verification is failing. Has some been through this?

Agents talking to MCP Server, SSL verification is failing. Has some been through this?

快速结论:该报错通常发生在 MCP Agent 通过 CrewAI 等框架连接已部署的 MCP Server 时,因服务器 TLS 证书链不完整或使用了私有 CA 导致 SSL 握手失败。优先使用 openssl s_client 或 SSL Labs 检查服务器证书链是否完整。

问题场景

用户使用 CrewAI 的 MCPServerAdapter 连接已部署的 MCP Server(运行在非 localhost 地址)。本地运行正常,但更换为远程 URL 后触发 SSL 验证错误。

报错原文

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

原因分析

这是典型的 TLS 信任存储问题,而非 MCP Python SDK 的 Bug。SDK 直接将 URL 传递给 httpx,而 httpx 报告服务器返回的证书链无法通过本地的 CA 包验证。最可能原因是:

  • 服务器 TLS 证书链不完整:浏览器会自动补全缺失的中间证书,但 Python(依赖系统 CA 包)不会。这是 unable to get local issuer certificate 最常见的诱因。
  • 私有 CA 证书:如果服务器使用了内部私有 CA 颁发的证书,则需要将对应的根 CA 证书添加到客户端的信任列表中。

环境排查

  • 确认 MCP Server 部署的域名/IP 及端口(如 your-host:443)。
  • 从运行 Agent 的机器上使用 curl 测试同一端点。
    curl https://your-host/path

    如果 curl 同样报错,则问题确认为服务器证书链。

  • 使用 openssl s_client 检查证书链完整性:
    openssl s_client -connect your-host:443 -showcerts </dev/null
  • 可使用 SSL Labs(ssllabs.com/ssltest)输入域名,查看「Chain issues」项。

解决步骤

  1. 修复服务器证书链(可优先尝试):如果检查发现缺少中间证书,在服务器或负载均衡器上修复配置。例如将中间证书拼接到 fullchain.pem,或使用 Let’s Encrypt / ACME 签发的正确证书。
  2. 配置客户端 CA 包:如果使用私有 CA,设置环境变量使 httpx 信任自定义 CA 包:
    export SSL_CERT_FILE=/path/to/ca-bundle.pem
    # 或
    export SSL_CERT_DIR=/path/to/ca-certs/

    httpx 会直接读取这些环境变量。

  3. 注意:如果通过 CrewAI 的 MCPServerAdapter 调用,更深入的 httpx 自定义(如自定义 ssl.SSLContexthttpx_client_factory)需要在 CrewAI 层面做适配,MCP Python SDK 当前不涉及此层。

验证方法

重新运行 Agent,观察是否仍出现 SSL: CERTIFICATE_VERIFY_FAILED 错误。如果之前使用 curl 测试失败,修复后 curl 也应能正常连接。

参考来源

modelcontextprotocol/python-sdk #1628

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 8268

发表回复

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