web-dev-qa-db-ja.com

接続中の不明なSSLプロトコルエラー

コミットをBitbucketリポジトリにプッシュしたいのですが、このエラーが発生しました:

Fatal: unable to access
'https://[email protected]/myUsername/myRepository.git/':
Unknown SSL protocol error in connection to bitbucket.org:443
61
b24

Bitbucket knowledgebase によると、リポジトリの所有者が計画の制限を超えていることが原因の可能性もあります。

ページのさらに下を見ると、古すぎるgitバージョンを使用してこのエラーをトリガーすることも可能です(現時点では1.7が必要です)。

41
Jordfräs

あなたはより多くの情報を得ることができます

# Windows
set GIT_CURL_VERBOSE=1
set GIT_TRACE_PACKET=2

# Unix
export GIT_CURL_VERBOSE=1
export GIT_TRACE_PACKET=2

そして、git Pushを試してください。

プロキシ設定がある場合は、再確認してください。

注:git 2.8(2016年3月)では、エラー35に関する詳細が追加されています。

commit 0054045 (2016年2月14日)by Shawn Pearce(spearce を参照してください。
C浜野順夫-gitster- in commit 97c49af 、2016年2月24日)

remote-curl:SSLセットアップの失敗時にcurl_errorstrを含める

curlエラー35(CURLE_SSL_CONNECT_ERROR)の場合、ユーザーはCURLOPT_ERRORBUFFERに保存された追加のテキストを必要として、接続が開始されなかった理由をデバッグします。
これはcurl_errorstr内のhttp.cであるため、空でない場合はメッセージに含めます。


そのメッセージの一般的な原因 も確認してください:

以前動作していたが今日動作していない場合、SSL秘密鍵がBitBucket側で期限切れになっている可能性があります(以下の理由#3を参照)が、ここではそうではないようです(証明書は有効になるまで有効です) 12/03/2014)。


宛先サイトはプロトコルを好まない

次のようなリクエストを実行すると、Unknown SSL Protocolエラーが発生します。

curl --sslv2 https://techstacks-tools.appspot.com/

どうして?この場合、techstacksツールサイトがSSLv2をサポートしていないため、curl(35)エラーが生成されているためです。

宛先サイトは暗号を好まない

サイトが拒否するように構成されているSSL暗号を使用して、サイトに接続しようとしている可能性があります。
たとえば、匿名暗号は通常、顧客向けのSSL暗号化サイトでは無効になっています。 (私たちの多くは、目的に関係なく、SSLで暗号化されたWebサイトに全面的な拒否ポリシーを設定しています。)
次のコマンド文字列「can」もcurl(35)エラーになります。

curl --ciphers ADH-RC4-MD5 https://some_web_site.some_domain.com/

残念ながら、curlから取得できるエラー応答のタイプは、sslサーバーに大きく依存します。一部のサイトでは、不明なSSLプロトコルエラーが表示されますが、techstacks-toolsサイトでは次のようになります。

curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

この特定のエラーは、少なくともsslソケットが開始されたことを示しますが、ハンドシェイクの失敗によりソケットが完了できなかったことを示すため、この特定のエラーは職場の私のウェブサイトが生成するエラーよりも少し説明的です。

サイトがサポートする暗号でサイトに接続してみてください。使用する暗号がわからない?さて、私の cryptonark ssl暗号テスター ...

SSL秘密鍵の有効期限が切れています

今日、私は古いWebSeALサイトで作業しているこの1つに出くわしました。
IBM GSKitでは、秘密鍵パスワードの有効期間を指定できます。特定の日付に達した後でも、websealを開始してポート443(またはhttps-port値に設定したもの)でリッスンすることはできますが、SSLセッションを正常にネゴシエートすることはできません。
今日の場合、古いWebSEALインスタンスは、有効期限の長いkdbファイルを使用し、有効期限の長い秘密鍵のパスワードを使用しています。正しい最新バージョンに置き換えると、すべてが再び機能しました。

不適切なリダイレクト

一部のISPおよびDNSプロバイダーは、失敗したDNSクエリをインターセプトして、代替URLを提供する検索エンジンの結果スタイルのページにリダイレクトするか、「...を意味しますか?」カウンタークエリの結果。
次のようなエラーが表示された場合:

 error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol, 

ホスト名を誤って入力したか、ホスト名がまだDNSに登録されていないことが原因の可能性があります。単純な「Host」または「nslookup」でそれを確認できます。


注(2015年8月):Git 2.6+(2015年第3四半期)では、SSLバージョンを明示的に指定できます。

http:SSLバージョンを指定するためのサポートを追加

commit 01861cb (2015年8月14日)by Elia Pinto(devzero2000 を参照してください。
サポート: Eric Sunshine(sunshineco
C浜野順男-gitster- in commit ed070a4 、2015年8月26日)

http.sslVersion

デフォルトを強制する場合、SSL接続をネゴシエートするときに使用するSSLバージョン。
利用可能なデフォルトバージョンは、libcurlがNSSまたはOpenSSLに対して構築されたかどうか、および使用中の暗号ライブラリの特定の構成によって異なります。内部的に、これは 'CURLOPT_SSL_VERSION'オプションを設定します。このオプションの形式およびサポートされているsslバージョンの詳細については、libcurlのドキュメントを参照してください。
実際、このオプションで可能な値は次のとおりです。

  • sslv2
  • sslv3
  • tlsv1
  • tlsv1.0
  • tlsv1.1
  • tlsv1.2

'GIT_SSL_VERSION'環境変数で上書きできます。
libcurlのデフォルトのsslバージョンを使用するようにgitに強制し、明示的なhttp.sslversionオプションを無視するには、「GIT_SSL_VERSION」を空の文字列に設定します。

53
VonC

次のgit設定を設定すると、これが修正されました

git config --global --add http.sslVersion tlsv1.0

私は、企業のプロキシサーバーがデフォルトの暗号化プロトコルを好まなかったと推測しています。

19
Robert Wagner

多くの場合、プロキシの問題にリンクしています。その場合は、gitプロキシを設定するだけです

git config --global http.proxy Host:PORT
14
Lho Ben

このエラーは、サーバーがダウンしている場合にも発生します。問題に関する技術サポートからのメール:

「Webサイトへのトラフィック、およびHTTPSを介したMercurialとGitのトラフィックに影響する停止が発生しました。SSHは影響を受けませんでした。詳細については、このページを確認してください。

http://status.bitbucket.org/ "

したがって、後でもう一度試してみてください。私のためにした

5
Aggressor

私はそれを企業のプロキシの背後に置いていました。

によって解決されました:

git config http.sslVerify "false"

5
John Fouhy

Android St​​udio 2.1.3でバージョン管理を使用しているときにこの問題に直面しました。私が直面しているシナリオは次のとおりです。

1- IDEを開き、「更新/プル」アイコン(Ctrl + T)をクリックしました

2-マスターパスワードを要求せず、失敗し、このエラーが発生しました:

Unknown SSL protocol error in connection to bitbucket.org:443

3-リポジトリを取得しようとしました(右クリック> git>リポジトリ>取得)

4-マスターパスワードの入力を求められ、入力しました

5-フェッチしようとしましたが、何度も何度も失敗しました

6- i 再起動した Android studio

7-リポジトリを取得しようとしました(右クリック> git>リポジトリ>取得)

8-マスターパスワードの入力を求められ、入力しました

9-今のものは OK、すべてがうまくいく

結論 :

多分Android St​​udioはgitアクションの前に最初にマスターパスワードを必要とします。さもなければ、後でマスターパスワードを要求しても失敗し続けます

1

同じ問題が発生します。 gitの最新バージョンで、プロキシなし。

それを私が直した:

  • gitHubにサインインする
  • インターフェイスを入力します:「個人設定」をクリックし、「SSHキー」をクリックします。コマンドによって生成された「id_rsa.pub」を配置したかどうかを確認してください
  • 'ssh-keygen -t rsa' Windowsでgithubに->GIT BASH
  • 「SSHキーを追加」し、「id_rsa.pub」を追加します。

詳細: キーを作成

キーをコピー

1
AFetter

「bitbucket.org:443への接続で不明なSSLプロトコルエラー」が発生し、中国にいる場合、githubはファイアウォールによって一時的にブロックされている可能性があります。 VPNの使用を試みることができます。がんばろう!

0
zjwzcn07

私は同じ問題を抱えていて、ここで提供されているすべてのSSL設定の変更を試みました。 Gerritなどのツールで使用される企業ネットワークおよびsshキーを使用している場合。 1. sshキーを取得します。2. Bitbucketにアクセスし、プロファイル>>設定>> SSHキー>>キーの追加に移動します。

Sshキーの追加後、もう一度プッシュしてみてください。

0
Tugrul ASLAN

tortoiseGitを使用します。同じ問題がありました。次に、プッシュ設定で「PuTTYキーを自動ロード」のチェックを外し、プッシュを試みた後、もう一度チェックしてプッシュしました。しかし、真剣に、私は理由がわかりません。

0
Prusdrum

execute

nc -v -z <git-repository> <port>

あなたの出力は次のようになります

"Connection to <git-repository> <port> port [tcp/*] succeeded!"

あなたが取得する場合

connect to <git-repository> <port> (tcp) failed: Connection timed out

~/.ssh/configファイルを編集する必要があります。次のようなものを追加します。

Host example.com
Port 1234
0
ameen

2台のコンピューターがあり、

1つ目は、VPNを介して企業ネットワークに接続された企業のラボトップです。それは、大きなファイアウォールと多数のルーターの背後にある社内にいるようなもので、フォーク、内部、外部(通信さえも)がネットワークとファイアウォールをいじり回しており、プロキシユーザーなどの資格情報を提供する必要があります。パスワードを使用しても、機能する場合と機能しない場合があります。

つまり、SVN JSVN MAVEN downlaods、ANTダウンロードを使用してファイアウォールを介してアクセスでき、git clone http:// git ... reposを使用できます。

しかし、git clone https:// git ... repoはできません。この最新のケースでは、このエラーが発生します。

私が現場にいる2番目のコンピューターは、自宅から小さなラボトップであり、特別なものはありません。WANを介してwwwに接続し、上記のすべてのツールに加えてgit clone https:// git ... repoは特別なことをせずにスニフのように動作します。

結論:「なんらかの方法で管理されたファイアウォール」の後ろに座っていることが、トラブルの原因になることがよくあります。それを理解するために、保護されていない小さなラボトップを持ち、自宅からwww接続してください。それが実行されている場合、セキュリティ担当者と時間を無駄にしないでください、彼らがあなたの中でうまくいかない理由がわからない限り、彼らは数週間働きます場合によっては、クローンされたgitリポジトリをポータブルドライブと共有できます。

Josef-そのような状況で時間を無駄にして老化する;-)

0
stadelma

私が現在背後にいる企業のHTTPプロキシが散発的にこのエラーを出しています。ブラウザでbitbucket.orgにアクセスし、コマンドをリタイリングするだけで修正できます。これがなぜ機能するのか分かりませんが、(少なくとも一時的に)修正されます。

0

このエラーは、大量のソース(ほぼ700Mb)をプッシュするときに発生し、その後、部分的にプッシュしようとして正常にプッシュされました。

0
Wildan Muhlis