最近在上 code 老是遇到憑證問題,雖然可以加環境變數來跳過,但三不五時就來一次實在有點討厭,來找找有沒有一勞永逸的辦法。
問題
1 |
|
這主要是系統不信任我 git 伺服器的憑證,因此過不了系統的安全認證。查到的解決方法有二:
- 略過或關閉 SSL 憑證檢查。
- 告訴系統該伺服器可以信任。
略過或關閉 SSL 憑證檢查
如果你信任該伺服器,可以直接設定環境變數,讓 git 略過憑證的驗證:
1 |
|
但這方法並不能永久略過,每隔一陣子,它就又會來報個錯刷刷存在感。若要讓 git 永久略過 SSL 憑證檢查,必須直接將設定寫入 git 的設定檔:
1 |
|
這種解法比較像是閉上眼不管了,憑證問題依然沒有解決,而且像這樣永久略過會讓 SSL 少一層防護,因此不是很想這麼做。
匯入伺服器憑證
比較標準的作法應該是要匯入伺服器憑證,告訴系統該伺服器可以信任。在 Office 指南這個部落格,找到了份 script,可以直接做到這件事。
建立一個 script
1 |
|
然後用 vim
對該檔案進行編輯,進入編輯模式後,輸入下面的內容,當然 hostname
跟 port
記得要換成自己的。
1 |
|
最後執行 script
1 |
|
理論上之後對同一台 git 伺服器的憑證應該不會再出現相同的錯誤訊息了,至少我到目前為止暫時沒出現過了。
參考資料
- EdmundChen (2017-12-11)。git错误error: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none 。檢自 简书 (2020-09-17)。
- Git 透過 HTTPS 連線失敗:server certificate verification failed 解決方式 。檢自 Office 指南 (2020-09-17)。
更新紀錄
最後更新日期:2020-12-30
- 2020-12-30 發布
- 2020-09-17 完稿
- 2020-09-17 起稿