少數人會遇到的冷門問題,使用 Visual Studio 連上 Github 或自有 Git 伺服器時發生 SSL 憑證錯誤:

Git failed with a fatal error. unable to access '…': SSL certificate problem: unable to get local issuer certificate

可能原因有二:

  1. 網站連線時 SSL 憑證遭網管設備置換,Windows 已設定信任網管設備的 CA 根憑證,但 Git 因屬不同體系,拒絕承認置換憑證有效性
  2. 私有 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。

大功告成!

【延伸閱讀】


Comments

Be the first to post a comment

Post a comment


77 + 13 =