如何在 OpenSuse 中為應用程序安裝自簽名 .pem 證書?
最近我的工作場所更新了網際網路使用政策並實施了 Sophos 安全層來監控流量。
我正在嘗試複製一個 git repo(使用
git clone
命令),但收到以下錯誤fatal: unable to access 'https://github.com/openssl/openssl.git/': SSL certificate problem: self signed certificate in certificate chain
這是“隱含的”證書問題。我怎樣才能得到這個工作?
UPDATE1: 證書是正確的,因為它們成功地與瀏覽器(firefox)一起工作,問題是如何使用這些證書來啟用 git SSL 驗證。
更新2:
將從 Firefox 獲取的證書(從Firefox > Preference > Privacy & Security > Certificates > View Certificates*導出)*複製到
/etc/ssl/certs
.以 root
c_rehash /etc/ssl/certs
和git config --system http.sslCAPath /etc/ssl/certs
.產生以下響應。複製開始並在中途死亡
Cloning into 'openssl'... remote: Enumerating objects: 9, done. remote: Counting objects: 100% (9/9), done. remote: Compressing objects: 100% (8/8), done. fatal: The remote end hung up unexpectedly.89 MiB | 16.11 MiB/s fatal: early EOF fatal: index-pack failed
似乎 Sophos 安全充當MITM,因此您應該禁用此 repo 的 SSL/TLS 檢查。使用Stackoverflow 的答案:
要為單個 git 命令禁用 TLS/SSL 驗證,請嘗試
-c
使用正確的配置變數傳遞給 git,或使用 Flow 的答案:git -c http.sslVerify=false clone https://example.com/path/to/git
禁用特定儲存庫的 SSL 驗證如果儲存庫完全在您的控制之下,您可以嘗試:
git config http.sslVerify false
問題不在於證書,因為此證書(自簽名)在您的機器上(在 Sophos 安全軟體中)。您可以通過停止 Sophos 軟體來證明這一點(如果您有權限)並重試(瀏覽器也是如此)
要安裝此證書(如果瀏覽器接受)打開瀏覽器,將其指向 SSL/TLS 站點,點擊左側站點並下載證書(PEM 格式)。然後將文件複製
/etc/ssl/certs
並執行(最終)c_rehash /etc/ssl/certs
您也可以嘗試執行
git config http.sslCAInfo /etc/ssl/certs/<self-signed certificate>.pem
或者
git config --system http.sslCAPath /etc/ssl/certs
讓 git 接受這個證書
你也可以手動做一些事情。在目錄中搜尋
config
文件。.git
並在部分中添加[http]
這些行:[http] sslCAInfo = /etc/ssl/certs/<certificate>.pem sslCAPath = /etc/ssl/certs/<certificate>.pem sslCert = /etc/ssl/certs/<certificate>.pem