You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下Git Bash中Curl调用API遇证书错误求助

Git Bash中Curl证书错误(0x80092002)解决办法

问题场景

Windows环境下使用Git Bash(版本git version 2.41.0.windows.1)执行curl请求API时,遇到证书导入失败错误:
执行命令:

curl  --cert mypc\mysample.crt --key mypc\mysample.key --cacert mypc\mysample.crt https://localhost:8073/api/hello

返回错误:

curl: (58) schannel: Failed to import cert file mypc\mysample.crt,
last error is 0x80092002

错误原因

错误码0x80092002是Windows加密API(schannel)的报错,核心原因:

  • Git Bash默认的curl使用Windows原生schannel作为SSL后端,schannel不支持单独的.crt(证书)和.key(私钥)文件,仅支持PFX/PKCS#12格式的合并证书文件。
  • 路径中的反斜杠\在Git Bash中可能被解析为转义字符,导致文件路径识别错误。

解决方法

方法1:合并证书为PFX格式(推荐)

利用Git Bash自带的openssl工具,将.crt和.key合并为PFX文件:

openssl pkcs12 -export -in mypc/mysample.crt -inkey mypc/mysample.key -out mypc/mysample.pfx

执行时会提示设置导出密码,记住该密码。

之后修改curl命令,使用PFX文件:

curl --cert mypc/mysample.pfx:你的导出密码 https://localhost:8073/api/hello

本地测试场景可添加--insecure跳过CA证书验证(生产环境禁用)。

方法2:强制curl使用OpenSSL后端

通过环境变量指定curl使用OpenSSL而非schannel,OpenSSL支持单独的.crt和.key文件:

export CURL_SSL_BACKEND=openssl

之后执行原curl命令(将路径中的反斜杠改为正斜杠):

curl --cert mypc/mysample.crt --key mypc/mysample.key --cacert mypc/mysample.crt https://localhost:8073/api/hello

⚠️ 注意:确保.crt和.key文件为PEM格式(文本文件,开头包含-----BEGIN CERTIFICATE-----/-----BEGIN PRIVATE KEY-----标识)。

额外注意事项

  • Git Bash中优先使用正斜杠/作为路径分隔符,避免反斜杠\引发的转义问题。
  • 自签名证书场景下,若需信任CA证书,可将证书导入Windows系统证书库(控制面板>管理证书>受信任的根证书颁发机构)。

内容的提问来源于stack exchange,提问作者Bilgehan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:10:07