最近、私の仕事では、インターネット利用ポリシーを更新し、Sophosセキュリティ層を実装してトラフィックを監視しました。
コマンドを使用してgitリポジトリを複製しようとすると、git clone
次のエラーが発生します。
fatal: unable to access 'https://github.com/openssl/openssl.git/': SSL certificate problem: self signed certificate in certificate chain
これは「暗黙の」証明書の問題です。どのように動作させることができますか?
アップデート1: 証明書はブラウザ(firefox)で正常に動作するため、正確です。問題は、これらの証明書を使用してgit SSL検証を有効にする方法です。
アップデート2:
Firefox から取得した証明書をコピーします。(次からエクスポートしました。Firefox > 環境設定 > プライバシーとセキュリティ > 証明書 > 証明書の表示)到着する/etc/ssl/certs
。
ルートとして実行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
ベストアンサー1
Sophos セキュリティが次のような役割を果たしているようです。仲介者したがって、このリポジトリの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