github copilot 在企业内网因自签名证书被拦截导致功能异常,需通过三种方法解决:一、配置 node_extra_ca_certs 环境变量使 node.js 信任根证书(推荐);二、临时禁用 strictssl(仅调试);三、将证书导入系统证书库并更新信任链。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

GitHub Copilot 在企业内网或本地开发环境中因自签名证书被拦截,导致登录失败、补全无响应或日志中持续报 Insecure certificate signature 错误,必须针对性地绕过或信任该证书链才能恢复功能。
确认是否为自签名证书问题
在终端执行以下命令,观察返回内容是否含 SSL certificate problem: self signed certificate 或 unable to get local issuer certificate:
curl -v https://api.githubcopilot.com 2>&1 | grep -i "certificate\|ssl"
若输出中出现 self signed 或 issuer certificate 关键词,且状态码非 200,则基本可锁定为自签名证书拦截。注意:此检测必须在与 VS Code 相同的用户环境和网络下运行,否则结果无效。
方法一:让 Node.js 信任自签名根证书(推荐)
VS Code 及 Copilot 插件底层大量依赖 Node.js 网络模块,而 Node.js 默认不读取系统证书存储,需显式注入证书路径。
第一步:将企业或本地 CA 根证书(.crt 或 .pem 文件)复制到固定位置,例如:~/certs/internal-ca.crt
第二步:在 VS Code 启动前设置环境变量。Linux/macOS 用户在 shell 配置文件(如 ~/.zshrc)末尾添加:
export NODE_EXTRA_CA_CERTS="$HOME/certs/internal-ca.crt"
Windows 用户需在系统环境变量中新增 NODE_EXTRA_CA_CERTS,值为完整路径(如 C:\certs\internal-ca.crt),【必须重启 VS Code 所在终端及 VS Code 进程】。
第三步:验证生效。打开 VS Code 终端,运行 node -e "console.log(process.env.NODE_EXTRA_CA_CERTS)",确认输出路径正确;再执行 curl -v https://api.githubcopilot.com,应返回 HTTP 200 且不再报证书错误。
方法二:临时禁用证书验证(仅限调试)
方法二仅用于快速验证是否为证书问题本身,不可长期启用,会暴露 API 请求明文风险。
在 VS Code 设置中搜索 github.copilot.http.proxy,点击「在 settings.json 中编辑」,添加以下行:
"github.copilot.http.strictSSL": false
保存后重启 VS Code。若 Copilot 恢复登录与补全,则 100% 确认为证书校验拦截。注意:【此配置会全局关闭 Copilot 的 HTTPS 证书验证,切勿在生产环境或公共网络使用】。
方法三:向系统证书库导入并更新信任链
适用于 macOS 和多数 Linux 发行版(如 Ubuntu/Debian),让整个系统级网络栈识别该证书。
方法一(macOS):双击 .crt 文件 → 在钥匙串访问中选择「系统」钥匙串 → 右键证书 → 「显示简介」→ 展开「信任」→ 将「SSL」设为「始终信任」→ 关闭并输入密码确认。
方法二(Ubuntu/Debian):将证书复制到 /usr/local/share/ca-certificates/ 下,例如:
sudo cp internal-ca.crt /usr/local/share/ca-certificates/internal-ca.crt
然后运行:
sudo update-ca-certificates
该命令会自动将证书合并进 /etc/ssl/certs/ca-certificates.crt。VS Code 需要完全退出(包括后台进程)后重新启动才生效。











