2

自己署名の Apache 証明書でホストされている内部 git リポジトリをテストしています。

残念ながら、そのようなエラーなしでプッシュすることはできません

エラー: gnutls_handshake() が失敗しました: TLS 警告アラートが受信されました。https:// urlにアクセス中

次の設定を行いました。

.git/config で

[http]
    sslverify = false

そして、環境変数の世界では:

declare -x CURLOPT_SSL_VERIFYHOST="0"
declare -x GIT_CURL_VERBOSE="1"
declare -x GIT_SSL_NO_VERIFY="true"

私の問題は他に何がありますか?

4

4 に答える 4

3

同じ問題を抱えている人への参考として: これは、古い Debian および Ubuntu ディストリビューションで libcurl-gnutls3 バージョン < 7.21.7 を使用する git が原因である可能性が非常に高いです。

ライブラリにバグがあり、少なくとも HTTP プロキシを経由して HTTPS Web サイト (独自のローカル プロキシ、リモート リバース プロキシ、または政府の透明なプロキシ) に到達する際に誤動作が発生しました。質問には、作成者がプロキシを使用しているかどうかは記載されていませんが、同じではない場合、問題が関連している可能性があると強く思います。https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559371を参照してください。

修正は、固定された libcurl-gnutls3 バージョンをサポートする新しいディストリビューションにアップグレードするか、自分で再構築するか、git を再構築して libcurl-openssl を使用することです ( https://askubuntu.com/questions/186847/error-gnutls-handshake-を参照)。 falied ) または... https の使用を避ける

于 2014-02-19T11:30:35.113 に答える
1

Apache VirtualHost の ServerName が正しくない可能性があります。これは、証明書サーバー名に対応している必要があります。TLS アラートの理由を調べるには、wireshark を実行することをお勧めします。

于 2013-01-30T08:05:20.473 に答える
0

代わりに git が HTTPS を使用するようにします。

自己署名証明書が次のとおりであると仮定します。

/etc/ssl/certs/selfsigned.pem

以下をせよ:

openssl x509 -in /etc/ssl/certs/selfsigned.pem -out ~/certs/selfsigned.crt
git config --global http.sslcainfo ~/certs/selfsigned.crt
于 2012-07-13T01:38:07.107 に答える
0

私は同様の問題を抱えていました。仮想ホストのApache構成にサーバー名を入力した後、これは機能しました。curl --cacert https..var.git が機能している間、 git clone https:..var.git はエラーをスローしました -

'var' に複製しています... エラー: gnutls_handshake() が失敗しました: TLS 警告アラートを受信しました。https://foo.server/var.git/info/refs の致命的なアクセス中に : HTTP 要求が失敗しました

あなたがしなければならないもう1つのことは、あなたがした後です

cd /var/www/var (var はドキュメント ルート)

sudo git clone --bare ~foo/var
sudo git update-server-info
于 2014-01-28T13:49:42.687 に答える