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

使用HTTPS证书执行Git Push时触发X.509读取错误求助

解决Git无法读取P12客户端证书的问题

Git底层依赖OpenSSL,仅支持PEM格式的分离式证书与私钥,而P12是PKCS#12格式的容器文件,需通过OpenSSL转换为Git可识别的格式,步骤如下:

1. 提取PEM格式客户端证书

执行以下命令,从P12文件中导出仅包含客户端证书的PEM文件:

openssl pkcs12 -in /home/grim/xxxx.p12 -clcerts -nokeys -out client-cert.pem
  • 执行时需输入P12文件的保护密码
  • -clcerts:仅提取客户端证书(排除CA证书)
  • -nokeys:不导出私钥

2. 提取PEM格式私钥

先导出加密状态的私钥:

openssl pkcs12 -in /home/grim/xxxx.p12 -nocerts -out client-key-encrypted.pem

同样需要输入P12密码,若希望Git无需每次输入密码,可将私钥解密为无密码版本:

openssl rsa -in client-key-encrypted.pem -out client-key.pem

执行解密命令时需输入私钥的保护密码(与P12密码一致)

3. 配置Git使用转换后的文件

设置证书与私钥路径:

git config http.sslCert /path/to/client-cert.pem
git config http.sslKey /path/to/client-key.pem

若保留加密私钥,需额外配置密码:

git config http.sslKeyPassword "your-p12-password"

4. 修复私钥文件权限

Git要求私钥文件权限必须为600(仅所有者可读可写),否则会拒绝使用:

chmod 600 client-key.pem

完成以上步骤后,重新执行git push即可正常推送代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:06:03