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

Microsoft Teams Bot Connector证书验证失败问题求助

解决Bot Framework Connector请求Teams API时的证书验证失败问题

针对你遇到的UNABLE_TO_VERIFY_LEAF_SIGNATURE错误(半数请求无法通过证书验证),给你几个可行的解决方向:

  • 补全系统/Node.js的根证书链
    这个错误本质是Node.js找不到验证SMBA服务证书所需的完整根证书。你可以手动下载对应区域SMBA服务的CA证书链,导入到系统信任存储,或者在Node.js配置里指定该证书链。
    临时测试的话,可以设置环境变量NODE_TLS_REJECT_UNAUTHORIZED=0——注意:这会禁用所有证书验证,只适合排查问题,绝对不能用于生产环境。

  • 给ConnectorClient配置自定义证书验证
    初始化ConnectorClient时,通过自定义HttpClient传入CA证书链,强制使用指定证书验证。示例代码:

    const { ConnectorClient, HttpClient } = require('botframework-connector');
    const https = require('https');
    const fs = require('fs');
    const path = require('path');
    
    // 读取提前下载好的SMBA EMEA区域CA证书链文件
    const caCert = fs.readFileSync(path.join(__dirname, 'smba-emea-ca-chain.pem'));
    
    const customHttpClient = new HttpClient({
      httpsAgent: new https.Agent({
        ca: caCert
      })
    });
    
    // 初始化ConnectorClient时传入自定义HttpClient
    const connectorClient = new ConnectorClient(yourCredentials, {
      baseUri: 'https://smba.trafficmanager.net/emea/v3/',
      httpClient: customHttpClient
    });
    
  • 检查网络代理/防火墙的干扰
    如果你的服务部署在有代理或防火墙的环境里,大概率是中间设备篡改了证书链。要确认代理允许传递完整的HTTPS证书,或者配置Node.js使用代理的CA证书;同时检查防火墙有没有拦截smba.trafficmanager.net的请求,或者修改了证书内容。

  • 确认区域端点匹配
    你用的是EMEA区域的端点,要确保Teams租户确实在这个区域。不同区域的SMBA服务证书链可能不同,端点不匹配也可能导致验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 02:12:34