現在、ユーザーディレクトリの.gitconfig
に次のエントリがあります。
...
[http]
sslCAInfo=C:\\Users\\julian.lettner\\.ssh\\git-test.pem
...
これにより、gitサーバーと対話するときに使用する証明書が設定されます(会社のgitサーバーで必要)。
しかし、クライアントは常に他のサーバーによって拒否される構成済みの証明書を使用するため、他のリポジトリ(GitHubのパブリックリポジトリなど)を複製することはできません。
この認証の問題を回避するにはどうすればよいですか? Windows証明書ストアを使用して認証するようにGitを構成できますか?
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
構成設定を必要としない(そして実際には無視する)必要があります。
使用する:
git config --local ...
リポジトリごとの設定を指定します。ローカル設定は.git
ディレクトリ。
git
が設定を保存できる3つの場所の概要:
--local
:リポジトリ固有、<repo_dir>/.git/config
--global
:ユーザー固有、~/.gitconfig
--system
: システムのデフォルト、 /etc/gitconfig
より具体的な設定は、より一般的な設定をオーバーライドします。つまり、ローカルはグローバルとシステムの両方をオーバーライドします。