SSL 証明書の問題: 証明書チェーン内の自己署名証明書

SSL 証明書の問題: 証明書チェーン内の自己署名証明書

ファイアウォールの背後で、Chrome を使用して、次のように github リポジトリにアクセスできます。 https://github.com/Squirrel/Squirrel.Windows

Chromeはこのアクセスに当社の証明書を使用します。Git拡張機能、次のエラーが発生します:

SSL 証明書の問題: 証明書チェーン内の自己署名証明書

GitExtensions に証明書を使用してアクセスを許可させることはできますか?

編集: 詳細情報:

私のマシンでは、mysysGitは見当たりませんが、mingw/curlは見受けられるので、Gitはこれらを使用していると想定しています。これらは、証明書チェーンを構築するときにWindows信頼証明書を使用しないようです。私が受け取ったエラー、SSL 証明書の問題: 証明書チェーン内の自己署名証明書は、Git/Githubが使用するルート証明書が組み込みの証明機関(CA)ルートバンドルに存在しないことを示しています。@Akber Choudhryが指摘したように、Github SSLサーバーによって提供される証明書チェーンのルートであるCA証明書は DigiCert 高保証 EV ルート CAそして、その CA は C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt にあります。

問題が GitExtensions ではなく Git にあることを確認するために、コマンド ラインで次の操作を実行しました。

 >>git clone https://github.com/Squirrel/Squirrel.Windows.git

そして、同じ SSL 証明書の問題エラーが発生しました。

Git はこの証明書を使用していないように見えるので、次のように Git を設定してみました。

>>git config --system http.sslcainfo "C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt"

しかし、これは効果がありませんでした。

答え1

ファイアウォールの背後では、...github ... Chrome はこのアクセスに当社の証明書を使用します。

この説明に基づいて、私は「私たちの」証明書が Github の元の証明書ではなく、接続の中間者に対して独自の (「私たちの」) 証明書を生成する SSL 検査機能を備えたファイアウォールを使用していると想定しています。この証明書を発行したファイアウォールの CA (プロキシ CA) はおそらく Windows 信頼ストアに追加されており、この Chrome はそれを信頼します。

しかし、Git は Windows 信頼ストアを使用しないため、このプロキシ CA を認識しません。したがって、Github の証明書を発行した元の CA ではなく、ファイアウォールによって使用されるプロキシ CA を Git の CA ストアに追加する必要があります。

答え2

Chrome を使用して HTTPS 経由で Github にアクセスすると、ブラウザと Windows に組み込まれているルート証明書に対して Github の証明書チェーンを検証することになります。

内部的には、Gitextensions は msysgit を使用しますが、これは証明書チェーンを構築するときに Windows 信頼証明書を参照しません。

エラーから、Github で使用されるルート証明書が、組み込みの証明機関 (CA) ルート バンドルに存在しないことがわかります。これは、Gitextensions が古いバージョンの msysgit または curl をバンドルしていることが原因である可能性があります。

msysgitDigiCert High Assurance EV Root CAにはCAバンドルが含まれており、何年も前から存在しています。ファイル内でこの文字列を検索してください。bin/curl-ca-bundle.crt

マシンに古いバージョンの msysgit または mingw ツールがインストールされていないか確認してください。インストールされている場合は、削除して再インストールしてください。最後に、証明書を追加する必要がある場合は、msysgit 証明書の追加手順を参照してください。

関連情報