使用Teams Toolkit开发Outlook插件时遇ServiceUrl获取失败证书错误
解决Office插件侧载时的"Get ServiceUrl failed. unable to get local issuer certificate"错误
问题本质
该错误源于Node.js在请求服务URL时,无法验证Teams Toolkit调试阶段生成的自签名本地SSL证书,导致请求被阻断。
解决方案
1. 调试环境临时跳过SSL验证
在启动调试前设置Node环境变量,禁用证书检查:
- macOS/Linux终端:
export NODE_TLS_REJECT_UNAUTHORIZED=0 && npm start
- Windows命令提示符:
set NODE_TLS_REJECT_UNAUTHORIZED=0 && npm start
2. 信任Teams Toolkit生成的本地证书
- 找到项目目录下
.fx/certificate文件夹中的localhost.crt证书文件 - 将证书导入系统根证书存储:
- Windows:打开证书管理器,将证书添加到「受信任的根证书颁发机构」
- macOS:打开钥匙串访问,将证书设置为「始终信任」
- 执行命令将证书添加到Node信任列表:
npm install -g ssl-root-cas
创建trust-cert.js脚本并在项目启动前运行:
const sslRootCAs = require('ssl-root-cas').create(); sslRootCAs.addFile('./.fx/certificate/localhost.crt'); require('https').globalAgent.options.ca = sslRootCAs;
3. 重新生成Teams Toolkit调试证书
- 在VS Code中打开Teams Toolkit面板
- 进入「Settings」→「Certificate」,点击「Create new certificate」重新生成证书
- 按照弹框提示完成系统证书信任配置
4. 确认Node版本兼容性
尝试切换到Node.js 16.x最新LTS版本或18.x LTS版本,避免版本特定的SSL适配问题:
# 使用nvm切换版本(需先安装nvm) nvm install 16.20.2 nvm use 16.20.2
验证步骤
- 重新编译项目:
npm run build - 启动调试:
npm start - 侧载插件到Outlook,检查错误是否消除
内容的提问来源于stack exchange,提问作者San Jaisy
相关产品推荐
相关产品推荐

