markdown# 解决 Git Clone 报错:CRYPT_E_REVOCATION_OFFLINE
在使用 `git clone` 从 GitHub 克隆仓库时,有时会遇到类似下面的错误:
```bash
fatal: unable to access 'https://github.com/test.git/': schannel: next InitializeSecurityContext failed: CRYPT_E_REVOCATION_OFFLINE (0x80092013)
本文将深入分析该错误的产生原因,并提供多种有效的解决方案,帮助你顺利克隆仓库。
此错误与你的网络环境或 Windows 系统的安全设置有关,并非仓库本身的问题。
CRYPT_E_REVOCATION_OFFLINE 错误。以下方法按推荐程度排序,你可以从第一个开始尝试,如果无效再依次继续。
最直接的方法是通过 Git 配置,跳过证书吊销检查。这是最常见且有效的临时措施。
方案 A:禁用吊销检查(推荐)
在终端(命令提示符、PowerShell 或 Git Bash)中执行:
bashgit config --global http.schannelCheckRevoke false
说明:此设置仅影响 Git 的 HTTPS 通信,不会影响其他程序。它会告诉 Git 不再验证证书是否被吊销,从而绕过网络检查。对大多数开发者而言,这不会带来实际风险。
配置完成后,重新运行 git clone 命令即可。
方案 B:切换 SSL 后端(更安全)
如果你希望保持一定安全等级,可以将 Git 的 SSL 后端从 schannel 切换为 openssl:
bashgit config --global http.sslBackend openssl
该方式将使用 OpenSSL 库来处理证书验证,通常能规避 schannel 特有的吊销检查问题,且安全性更高。
如果 Git 配置调整后问题依旧,可能是系统或网络环境导致验证服务器无法访问。
git config --global http.proxy)。如果上述网络层面的调整无效,可以直接更换克隆协议,使用 Git 自带的 git:// 协议(不依赖 HTTPS 证书验证):
bashgit clone git://github.com/fankes/ColorOSNotifyIcon.git
注意:
git://协议使用 9418 端口,某些网络环境可能屏蔽该端口。若无法使用,可以尝试后续的 SSH 方式。
如果你拥有 GitHub 的 SSH 密钥配置,也可以通过 SSH 地址克隆,彻底避免 HTTPS 证书问题:
bashgit clone git@github.com:fankes/ColorOSNotifyIcon.git
前提是你的 GitHub 账户已正确添加 SSH 公钥。
CRYPT_E_REVOCATION_OFFLINE 是一个常见的 Git 网络错误,根源在于 Windows 下 schannel 的证书吊销检查无法正常完成。绝大多数情况通过简单的 Git 配置即可解决。
| 解决方案 | 推荐度 | 说明 |
|---|---|---|
http.schannelCheckRevoke false | ★★★★★ | 最简单,几乎立竿见影 |
| 切换 SSL 后端为 OpenSSL | ★★★★ | 兼顾安全与兼容性 |
| 检查网络/代理/时间 | ★★★ | 可解决部分系统环境问题 |
改用 git:// 或 SSH 协议 | ★★ | 绕过 HTTPS 验证,但依赖网络支持 |
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!