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

使用DoD通用访问卡(CaC)在Mac上远程访问Git的问题

解决Mac上DoD CaC卡Git/Bitbucket身份验证失败问题

我之前帮团队里的Mac用户解决过一模一样的问题——浏览器能正常选CaC证书访问Bitbucket仓库,但Git拉取/推送就报fatal: unable to access... SSLv3 alert handshake failure,Windows同事却完全正常。下面是亲测有效的解决步骤:

1. 先确认CaC卡基础环境没问题

  • 确保你已经安装了DoD根证书包(没装的话去DoD官方指定渠道下载安装)
  • 插好CaC卡后,打开「钥匙串访问」,能看到带你姓名的DoD证书(说明卡阅读器和驱动正常识别)

2. 让Git关联Mac密钥链里的CaC证书

浏览器能正常用证书是因为它直接调用了Mac的系统密钥链,但Git默认没配置这个。直接运行下面的命令让Git使用系统密钥链:

git config --global http.sslCertificates "/Library/Keychains/System.keychain"
git config --global http.sslKey "/Library/Keychains/System.keychain"

如果想更精准指定你的证书,也可以从钥匙串导出证书为.p12文件(导出时需要输入CaC卡PIN),然后配置Git指向这个文件:

# 导出证书到本地(替换证书名称为你自己的)
openssl pkcs12 -export -in "/path/to/your-dod-cert.pem" -out ~/my-cac-cert.p12
# 配置Git使用该证书
git config --global http.sslCert ~/my-cac-cert.p12
git config --global http.sslKey ~/my-cac-cert.p12

3. 强制Git使用兼容的SSL/TLS版本

报错里的SSL3_READ_BYTES说明Git默认用的SSL版本太旧,Bitbucket已经不支持了,强制Git使用TLS 1.2及以上版本:

git config --global http.sslVersion tlsv1.2

4. 切换Git的SSL后端为Mac原生实现

Mac上Git默认可能用的是OpenSSL后端,切换到原生的secure-transport能更好地和系统密钥链集成(和浏览器用的是同一套证书体系):

git config --global http.sslBackend secure-transport

5. 测试验证

配置完成后,直接拉取仓库测试:

git pull https://privatebitbucket.com/repo.git

这时候应该会弹出输入CaC卡PIN的窗口,输入后就能正常执行拉取/推送操作了。

为什么Windows同事没这个问题?

Windows版的Git(比如Git for Windows)默认就和系统证书存储深度集成,加上DoD CaC驱动在Windows上的适配更完善,所以不需要额外配置就能直接用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:55:25