WindowsマシンへのGitのインストール中に、HTTPSトランスポートバックエンドに[OpenSSLライブラリを使用する]を選択しました。
HTTPSトランスポートを「ネイティブWindowsセキュアチャネルライブラリ」に切り替えたい。
Windowsにgitを再インストールせずにこれは可能ですか?
この問題はGit for Windows開発者によって解決されています: https://github.com/git-for-windows/git/issues/1274
Git for Windows 2.14.2、64ビットの「schannel」または「openssl」の設定がファイルに見つかりました。
C:\Program Files\Git\mingw64\etc\gitconfig
OpenSSLの設定例:
[http]
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = openssl
Windowsネイティブの設定例:
[http]
sslCAInfo = C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
これは、Git 2.20(2018年第4四半期)で正式にサポートされるようになりました。最近のcURLライブラリを備えたプラットフォームでは、http.sslBackend
構成変数を使用して、実行時に別のSSLバックエンドを選択できます。
Windowsポートはこのメカニズムを使用して、HTTPSプロトコルで通信しながらOpenSSLとセキュアチャネルを切り替えます。
commit b67d40a (2018年10月25日)および Johannes Schindelin(dscho
) による commit 21084e8 (2018年10月15日)を参照してください。
Brendan Forster(shiftkey
) による commit 93aef7c (2018年10月25日)を参照してください。
( Junio C Hamano-gitster
- によってマージ commit d7b1859 、2018年11月2日)
http
:実行時にSSLバックエンドを選択するためのサポートを追加バージョン7.56.0以降、curlは複数のSSLバックエンドでのコンパイルをサポートしています。
このパッチは、その機能のGit側を追加します。
http.sslBackend
を "openssl
"または "schannel
"に設定することで、Git for Windowsが実行時にSSLバックエンドを選択できるようになりました。セキュアチャネル(「schannel」)はネイティブソリューションであり、Windows資格情報ストアにアクセスして、企業全体の証明書の管理を可能にするため、これはWindowsで役立ちます。
過去10年間、Git for Windowsでサポートされている唯一のSSLバックエンドであったため、歴史的な理由から、Git for WindowsはOpenSSLをサポートする必要があります。このパッチはGit for Windowsで1年以上実行されており、成熟していると見なされています。
Git for Windowsメンテナーから このスレッド をチェックアウトできます。
はい、それは可能であり、 にあるインストーラーのソースコードを検査することで、それがどのように行われるかを正確に知ることができますhttps://github.com/git-for-windows/build-extra はinstaller/install.issファイルにあります(このファイルは
git grep "Secure Channel"
)。関連する部分は、インストーラがGC_WinSSLオプションをテストして、ユーザーの選択を記録するよりも興味深いことを行う場合です。
if RdbCurlVariant[GC_WinSSL].Checked and (not
ReplaceFile(BinDir+'curl-winssl\curl.exe',BinDir+'curl.exe') or not
ReplaceFile(BinDir+'curl-winssl\libcurl-4.dll',BinDir+'libcurl-4.dll'))
then begin
Log('Line {#__LINE__}: Replacing curl-openssl with curl-winssl failed.');
end;
つまり、インストーラーは、\ mingw64\bin(または32ビットの同等物)内のcurl.exeおよびlibcurl-4.dllファイルを、\ mingw64\curl-winssl内のファイルで置き換えようとします。