返回

解决Git访问GitHub: schannel证书吊销检查失败

开发配置

解决 Git 访问 GitHub 出现 "schannel: next InitializeSecurityContext failed" 错误

在使用 Git 访问 GitHub 时,可能会遇到如下错误:

fatal: unable to access 'https://github.com/your-repo.git/':
schannel: next InitializeSecurityContext failed: CRYPT_E_REVOCATION_OFFLINE (0x80092013)

错误分析

该错误表明 Git 在使用 schannel (Windows Secure Channel) 进行 SSL 连接时,证书吊销检查失败。错误代码 0x80092013 (CRYPT_E_REVOCATION_OFFLINE) 表示 Windows 无法访问证书吊销列表 (CRL) 或在线证书状态协议 (OCSP) 服务器,导致 SSL 连接失败。

可能的原因包括:

  1. 网络问题:防火墙、代理、VPN 可能限制了对证书验证服务器的访问。
  2. Windows 证书更新未完成:Git 需要 Windows 证书存储中的最新证书。
  3. Git 配置问题:Git 默认使用 schannel 进行 SSL 连接,可能与部分环境不兼容。

解决方案

方案 1:禁用证书吊销检查(临时解决)

如果你只想快速解决问题,可以使用以下命令跳过证书吊销检查:

git config --global http.schannelCheckRevoke false

然后重试 git clone 或其他 Git 操作。

方案 2:切换 Git SSL 后端到 OpenSSL(推荐)

Git for Windows 默认使用 schannel 作为 SSL 后端,你可以改为 openssl 以避免该问题:

git config --global http.sslBackend openssl

然后重试 git clone

方案 3:更新 Windows 证书

如果不想禁用证书检查,可以手动更新 Windows 证书存储:

  1. 运行 Windows 更新
    • 打开 设置Windows 更新,检查并安装所有可用更新。
  2. 手动刷新证书
    • 在管理员模式下运行:
      certutil -generateSSTFromWU certs.sst
      
    • 然后导入 certs.sst 到 Windows 证书存储。

结论

如果你遇到了 schannel: next InitializeSecurityContext failed 错误,建议优先尝试 方案 1方案 2 解决问题。如果需要更安全的方式,建议 方案 3 更新证书。