少數人會遇到的冷門問題,使用 Visual Studio 連上 Github 或自有 Git 伺服器時發生 SSL 憑證錯誤:
Git failed with a fatal error. unable to access '…': SSL certificate problem: unable to get local issuer certificate
可能原因有二:
- 網站連線時 SSL 憑證遭網管設備置換,Windows 已設定信任網管設備的 CA 根憑證,但 Git 因屬不同體系,拒絕承認置換憑證有效性
- 私有 Git 伺服器使用自己簽發的 SSL 憑證,其根憑證未被信任
針對這類情況,解決方法也有二種,第一種是停用憑證檢查(省事但不安全)、第二種則是讓 VS2007 Git 信任該憑證。
方法1 編輯 c:\Users\你的帳號\.gitconfig,加入
[http]
sslVerify = false
如此 Git 工具將一律忽略憑證無效的問題,風險是萬一網路被惡意人士攔截竊聽,你也不會發現。
方法2 指定 Git 信任特定憑證
先將要信任的 CA 憑證匯出成 CER,格式請選「Base-64 編碼 X.509」
匯出的 CER 檔是個文字檔,格式為 -----BEGIN CERTIFICATE----- 與 -----END CERTIFICATE----- 間夾著一段 Base64 編碼碼。
找到 C:\Program Files\Git\usr\ssl\certs\ca-bundle.crt,將它複製到 c:\Users\你的帳號 目錄下,將 CER 裡的文字加在最後面:
最後,修改 c:\Users\你的帳號\.gitconfig,加上 sslCAInfo 指向我們修改過的 ca-bundle.crt。
大功告成!
【延伸閱讀】