私のgitサーバーからプルしようとすると、次のエラーが発生します。
致命的: 'xxx'にアクセスできません:OpenSSL SSL_connect:xxxへの接続でSSL_ERROR_SYSCALL
これが発生する前に、システムを復元するだけで解決できましたが、今回は何らかの理由でシステムの復元ポイントが削除されてしまい、それもできません。
これは、SSLに関連するシステム設定の一部が変更されたために発生します。理由はわかりません。
私はgitをインストールしてWindows証明書を使用しようとしました。 OpenSSLの代わりに保存すると、次のエラーが発生します。
致命的: 'xxx'にアクセスできません:schannel:ハンドシェイクの受信に失敗しました、SSL/TLS接続に失敗しました
同じ問題、異なるエラーメッセージ。サーバーはクライアントhelloの後にhelloメッセージを送り返していません。これは、クライアントのhelloメッセージでサーバーに送信する暗号スイートがサーバーでサポートされていないために発生する可能性があると考えました。したがって、私は グループポリシーの構成 を試して、サーバーが最初に使用している暗号スイートを順番に配置しました。しかし、違いはありませんでした。
ブラウザを介してgitサーバーのサイトに接続できます。だから私の質問は、この問題を解決するにはどうすればよいですか?
私の場合、.gitconfigを
[http] sslbackend = schannel
に
[http] sslbackend = openssl
テストのために Git for Windows release 2.14.2(June 21th、2018) を使用して再試行する必要があります。これにより、ssl backenhttp.sslCAinfo
schannel`の場合にis set to
を強制的に無視するコードが追加されます(Windows証明書がストアは無視されません)。
これは、cURL v7.60.0(またはそれ以降)で実行する場合にのみ関連します。
commit c5ad43e を参照してください:
http
:セキュアチャネルを使用する場合、デフォルトでsslCAInfo
を無視しますCURL v7.60.0以降、セキュアチャネルバックエンドは
http.sslCAInfo
を介して提供される証明書バンドルを使用できますが、これによりWindows証明書ストアが上書きされます。これはデフォルトでは望ましくないので、schannel
がこの動作をオーバーライドしない限り、useSSLCAInfo
バックエンドがhttp.sslBackend
を介して構成されたときに、デフォルトでそのバンドルを使用するようにcURLに要求しないようにGitに指示しましょう。
同じ問題(Windows 10)があり、再起動すると問題が解決しました。
「弱い」解決策の1つは、GIT_SSL_NO_VERIFY
:
export GIT_SSL_NO_VERIFY=true
または、Windowsでは、コマンドラインバージョンのGitを使用している場合は、システムまたはコマンドラインで環境変数を設定します。
set GIT_SSL_NO_VERIFY=true
それは単にそれが言うことをします...