自己署名証明書を使用して Windows 上の git を使用して「ローカル発行者証明書を取得できません」を解決できない 質問する

自己署名証明書を使用して Windows 上の git を使用して「ローカル発行者証明書を取得できません」を解決できない 質問する

Windows で Git を使用しています。msysGit パッケージをインストールしました。テスト リポジトリには、サーバーに自己署名証明書があります。HTTP を使用してリポジトリに問題なくアクセスして使用できます。HTTPS に移行すると、次のエラーが発生します。

SSL 証明書の問題: ローカル発行者の証明書を取得できません。

Windows 7 クライアント マシンの信頼されたルート証明機関に自己署名証明書がインストールされています。エラー メッセージが表示されることなく、Internet Explorer で HTTPS リポジトリ URL を参照できます。

フィリップ・ケリーによるこのブログ投稿cURL はクライアント マシンの証明書ストアを使用しないことが説明されています。ブログ投稿のアドバイスに従って、のプライベート コピーを作成しcurl-ca-bundle.crt、それを使用するように Git を構成しました。Git が私のコピーを使用していることは確かです。コピーの名前を変更すると、Git はファイルが見つからないとエラーを出します。

ブログ投稿に記載されているように、証明書を貼り付けましたが、「ローカル発行者の証明書を取得できません」というメッセージが引き続き表示されます。

HTTPS 経由で GitHub リポジトリをクローンして、Git がまだ動作していることを確認しました。

ブログ投稿と異なるのは、私の証明書ルートであり、そこに到達するためのチェーンがないことです。私の証明書は、もともと IIS8 IIS マネージャーのリンク「自己署名証明書の作成」をクリックして取得しました。おそらく、これにより、証明書が cURL が期待するものと何らかの点で異なることになります。

Git/cURL で自己署名証明書を受け入れるにはどうすればよいですか?

ベストアンサー1

問題は、git がデフォルトで「Linux」暗号化バックエンドを使用していることです。

Git for Windows 2.14 以降では、暗号化バックエンドとして Windows の組み込みネットワーク レイヤーである SChannel を使用するように Git を構成できるようになりました。つまり、Windows 証明書ストレージ メカニズムが使用されるため、curl CA ストレージ メカニズムを明示的に構成する必要はありません。https://msdn.microsoft.com/en-us/library/windows/desktop/aa380123(v=vs.85).aspx

実行するだけです:

git config --global http.sslbackend schannel

それは役に立つはずです。

schannel の使用は、現在では Windows に git をインストールする際の標準設定となっています。また、可能であれば SSH でリポジトリをチェックアウトしないことをお勧めします。https の方が設定が簡単で、ファイアウォールによってブロックされる可能性が低いため、失敗する可能性が低くなります。

おすすめ記事