• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Git 透過 HTTPS 連線失敗:server certificate verification failed 解決方式

介紹如何解決 git 透過 HTTPS 加密連線時所產生的憑證驗證失敗問題。


若使用 git 指令透過 https 的方式連線至 git 伺服器進行各種操作時,出現類似以下的連線錯誤:

fatal: unable to access 'https://your.host.com/team/proj.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

代表自己的電腦不信任簽屬 git 伺服器憑證的憑證頒發機構,有可能該憑證是自行簽署的,或是由其他沒有在 OS 內建名單中的機構所簽署。

設定 git 忽略 SSL 憑證檢查

解決這個問題的方法就是告訴自己的系統信任該憑證(如果它看起來沒有異常),若是在命令列中,可以先設定 GIT_SSL_NO_VERIFY 這個環境變數,這樣就可以讓 git 忽略憑證的驗證:

# 讓 Git Client 忽略 SSL 憑證檢查
export GIT_SSL_NO_VERIFY=1

設定了 GIT_SSL_NO_VERIFY 之後,在執行任何 git 指令時,就不會再進行任何 SSL 憑證檢查,也就可以避免出現上面這個憑證不被信任的問題了。

若要讓 git 永久忽略 SSL 憑證檢查,可以直接將設定寫入 git 的設定檔:

# 設定讓 Git Client 永久忽略 SSL 憑證檢查
git config --global http.sslverify false

匯入 git 伺服器憑證

雖然讓 git 忽略 SSL 憑證檢查可以快速解決憑證不被信任的問題,但是這樣就會讓 SSL 連線少了一層防護措施,並不是根本的解決方式,標準的作法應該是匯入 git 伺服器憑證,讓 git 可以信任該憑證,以下是匯入憑證的指令稿:

# Git 伺服器資訊
hostname=your.git.com
port=443

# 取得自己 OS 中放置 CA 的位置
trust_cert_file_location=`curl-config --ca`

# 匯入 Git 伺服器憑證
sudo bash -c "echo -n | openssl s_client -showcerts -connect $hostname:$port \
    2>/dev/null  | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'  \
    >> $trust_cert_file_location"

這段指令稿在使用之前必須先把 hostname 更換成自己的 git 伺服器,執行之後他就會把該台 git 伺服器的 SSL 憑證匯入自己 OS 的信任憑證清單之中,日後在使用 git 指令時就永遠不會遇到 SSL 憑證不被信任的問題了。

參考資料:StackOverflow、暗黑執行緒

分類:Linux

讀者互動方式

引用通知

  1. Raspberry Pi 3 + OP-TEE | mutationeme表示:
    2021-10-3021:56:55

    […] [1]: OP-TEE Raspberry Pi 3[2]: OP-TEE build[3]: OP-TEE build and run Prerequisites[4]: AOSP – Installing Repo[5]: Git 透過 HTTPS 連線失敗:server certificate verification failed 解決方式 […]

    回覆

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide