PAYATHON 2026

VS Code Live Share 报 certificate has expired 如何解决?

数据小许

结论

Starting collaboration session: certificate has expired 表示启动协作会话时,某个连接的证书校验报告证书过期。可能是目标服务的证书或证书链中的某张证书过期,也可能是执行校验的机器时间不正确。

仅凭这条弹窗,无法判断出问题的是登录服务、Live Share 的后续连接,还是代理提供的证书,也不能认定故障由 Remote - SSH 引起。先检查时间,再通过日志定位失败的连接。

先检查本机和远程服务器的时间

证书校验依赖系统时间。即使证书仍在有效期内,机器时间错误也可能使它被判定为过期。

如果本机和远程服务器使用 macOS 或 Linux,可以分别执行:

# 在本机终端执行,然后在远程服务器终端执行同一命令
# 查看 UTC 时间,便于比较
 date -u

确认两台机器的日期、年份和时间是否准确。显示的时区不同不代表时间错误,重点是实际时刻是否一致。如果时间明显不正确,先恢复系统时间同步,再重试启动会话。

需要检查两端,是因为目前无法确定执行证书校验的组件在哪一端运行。

从日志中定位失败的连接

打开 VS Code 的“输出”面板,查看 Live Share 相关输出。如果扩展提供日志导出入口,也可以导出日志。重新启动一次协作会话,检查报错时刻附近的记录。

重点查找:

  • certificate has expired 附近的完整错误和调用上下文。
  • 失败请求的主机名,以及失败发生在登录阶段还是创建会话阶段。
  • 是否出现代理、证书颁发者或证书有效期信息。

弹窗只说明最终失败原因。日志中的主机名和执行位置有助于判断应该修复哪一端。分享日志前,应删除访问令牌、账号信息和内部地址等敏感内容。

对比本地窗口和 Remote - SSH 窗口

新开一个没有连接 Remote - SSH 的 VS Code 窗口,打开本地文件夹并尝试启动 Live Share 会话,再与远程窗口的结果比较。

测试结果下一步排查重点
本地窗口和远程窗口都失败优先检查共同使用的本机环境、网络代理和目标服务证书
只有远程窗口失败检查相关组件的实际运行位置,以及远程端的时间、网络和证书环境
更换获准使用的网络后恢复检查原网络中的代理或 HTTPS 检查设备

这些结果只能缩小排查范围。例如,只有远程窗口失败,并不足以证明远程服务器的证书一定有问题。

根据证书来源处理

如果目标服务的证书过期,需要由服务维护方更新证书。若过期的是证书链中的中间证书,也需要检查服务提供的证书链。反复登录通常无法解决这类问题。

如果公司代理或 HTTPS 检查设备提供的证书过期,应联系管理员更新相关证书和配置。不要把重新导入一张已经过期的证书当作修复。

如果错误只出现在某个旧客户端环境中,记录 VS Code、Live Share 和 Remote - SSH 的版本,检查可用更新。更新可能修复客户端组件或证书链处理问题,但不能保证解决服务端证书过期。若日志表明涉及远程端组件,也应确认远程端对应组件的版本。

不要通过关闭 TLS 证书校验来绕过错误,这会使连接失去必要的身份验证保护。

为什么同时出现了登录提示?

登录提示本身不能证明账号有问题。已有登录状态失效、认证状态未能恢复,或启动过程需要重新认证,都可能触发登录。

你已经分别尝试 GitHub 和 Microsoft 账号,并遇到相同的证书错误。继续切换账号的排查价值有限,但这仍不足以确定具体故障点。下一步应确认登录是否已经完成,以及随后是哪一个连接的证书校验失败。

目前缺少失败主机名、证书信息和扩展日志,无法确定唯一根因,也不能指定一个必然有效的修复版本。

备注:内容仅供参考。