问题现象

以下是常见的错误表现:

  1. SSL 证书验证错误
    FetchError: Hostname/IP does not match certificate's altnames: 
    Host: api.github.com. is not in the cert's altnames: DNS:draw.yxwl.asia
    
  2. Copilot 功能异常:GitHub Copilot 聊天窗口的模型选项消失或无法加载。

原因分析

SSL 证书验证错误通常由以下原因引起:

  1. 代理服务证书不匹配:代理服务器使用自签名证书或重定向请求到错误服务器,导致 VSCode 无法验证 SSL 证书。
  2. DNS 解析异常:请求被导向错误的 IP 地址。
  3. 网络限制:企业或本地网络对某些域名或端口的访问受限。

解决方法

以下提供两种配置代理的方法,任选其一即可解决问题。

方法一:通过 settings.json 配置代理

  1. 打开用户设置文件

    • Ctrl+Shift+P(Mac 为 Cmd+Shift+P)打开命令面板。
    • 输入并选择 Preferences: Open User Settings (JSON),打开 settings.json
  2. 添加代理配置
    settings.json 中添加以下内容,替换为实际代理地址和端口:

    {
        "http.proxy": "http://127.0.0.1:20171",
        "https.proxy": "http://127.0.0.1:20171",
        "http.proxyStrictSSL": false,
        "github.copilot.advanced": {
            "proxy": "http://127.0.0.1:20171"
        }
    }
    
    • 字段说明
      • http.proxyhttps.proxy:设置 HTTP 和 HTTPS 请求的代理。
      • http.proxyStrictSSL:设为 false 禁用严格 SSL 验证,适用于自签名证书。
      • github.copilot.advanced.proxy:为 Copilot 设置专用代理。
    • 注意:将 20171 替换为实际端口号,如需认证,使用 http://username:password@127.0.0.1:20171
  3. 保存并重启

    • 保存 settings.json 文件。
    • 重启 VSCode 应用配置。

方法二:通过设置界面配置代理

  1. 打开设置界面

    • Ctrl+,(Mac 为 Cmd+,)或点击左下角齿轮图标,选择“设置”。
  2. 搜索代理设置

    • 在设置界面的搜索框输入 proxy
  3. 配置 HTTP 代理

    • 找到 Http: Proxy 设置项,输入代理地址,例如:
      http://127.0.0.1:20171
      
    • 若使用带分支规则的 HTTP 代理,可输入:
      http://127.0.0.1:20172
      
    • 若需禁用 SSL 验证,可在 settings.json 中添加 "http.proxyStrictSSL": false
  4. 保存并重启

    • 保存设置并重启 VSCode。

验证与注意事项

  • 验证:重启后,检查 Copilot 模型选项是否恢复,或运行网络请求确认无 SSL 错误。
  • 注意事项
    • 确保代理服务运行正常,端口号与配置一致。
    • 使用最新版本的 VSCode 和 GitHub Copilot 扩展。
    • 在企业网络中,可能需联系管理员确认代理或防火墙设置。

总结

通过 settings.json 或设置界面配置代理,并根据需要禁用严格 SSL 验证,可快速解决 VSCode 中因代理引起的 SSL 证书验证错误。两种方法均简单高效,适用于大多数代理场景。如问题未解决,可检查代理服务日志或联系 GitHub Copilot 支持。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐