web-dev-qa-db-ja.com

Windows証明書ストアからの証明書を信頼するようにGitを構成するにはどうすればよいですか?

現在、ユーザーディレクトリの.gitconfigに次のエントリがあります。

...
[http]
    sslCAInfo=C:\\Users\\julian.lettner\\.ssh\\git-test.pem
...

これにより、gitサーバーと対話するときに使用する証明書が設定されます(会社のgitサーバーで必要)。

しかし、クライアントは常に他のサーバーによって拒否される構成済みの証明書を使用するため、他のリポジトリ(GitHubのパブリックリポジトリなど)を複製することはできません。

この認証の問題を回避するにはどうすればよいですか? Windows証明書ストアを使用して認証するようにGitを構成できますか?

30
Julian Lettner

Git for Windows 2.14から、組み込みのWindowsネットワークレイヤーであるSChannelを使用するようにGitを構成できるようになりました。これは、Windows証明書ストレージメカニズムを使用し、curl CAストレージメカニズムを明示的に構成する必要がない必要がないことを意味します。

Git for Windows 2.14から リリースノート

http.sslBackend構成変数を"openssl"または"schannel"に設定することで、GitのHTTPSトランスポートでセキュアチャネルとOpenSSLを切り替えることができるようになりました。これは、インストーラが使用する方法でもあります(libcurl-4.dllファイルをコピーするのではなく)。

Git for Windows 2.14のインストール中に、新しいSChannelメカニズムを選択できます。次のコマンドを実行して、SChannelを使用するように既存のインストールを更新することもできます。

git config --global http.sslBackend schannel

これを構成すると、GitはWindows証明書ストアを使用し、http.sslCAInfo構成設定を必要としない(そして実際には無視する)必要があります。

68
Edward Thomson

使用する:

git config  --local ...

リポジトリごとの設定を指定します。ローカル設定は.gitディレクトリ。

gitが設定を保存できる3つの場所の概要:

  • --local:リポジトリ固有、<repo_dir>/.git/config
  • --global:ユーザー固有、~/.gitconfig
  • --system: システムのデフォルト、 /etc/gitconfig

より具体的な設定は、より一般的な設定をオーバーライドします。つまり、ローカルはグローバルとシステムの両方をオーバーライドします。

4
Andomar