githubからwgetできない、sslv3ハンドシェイクエラー


10

最近失敗し始めたgithubからmodセキュリティをダウンロードするスクリプトがあります。サーバーはCentOS 6を実行しますが、RHEL 6でもおそらく同じ問題があります。出力は次のとおりです。

# wget https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz
--2014-07-22 18:49:46--  https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz
Resolving github.com... 192.30.252.129
Connecting to github.com|192.30.252.129|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://cloud.github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz [following]
--2014-07-22 18:49:47--  https://cloud.github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz
Resolving cloud.github.com... 54.230.99.219, 205.251.219.190, 54.230.97.212, ...
Connecting to cloud.github.com|54.230.99.219|:443... connected.
OpenSSL: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
Unable to establish SSL connection.

これを修正または回避する方法に関するアイデアはありますか?


2
例えば、別のアプリケーション、使用curl
ラビン

1
より具体的には、54.230.99.219とcloud.github.comで取得したいくつかの(異なる)Aの両方が、ServerNameIndicationのオプションなしでs_clientにハンドシェイクの失敗を与えます。serverfault.com/questions/560053/…(数か月前)とありますRedHat wgetはSNIを実行しませんが、curlは実行します。
dave_thompson_085 2014


まあ、正直に言うと、@ dave_thompson_085またはRabinが回答としてコメントを投稿した方がいいと思います。回避策もうまく機能しているにもかかわらず、長期的な解決策のようです。
クリストファー2014

回答:


2

私が間違っていなければ、このレポを意味します。URLフォームのリリースを取得してみてください。

このケースは私にとってはうまくいきます:

$ wget https://github.com/SpiderLabs/ModSecurity/archive/v2.8.0.tar.gz

PSケースを実行しようとすると、同じエラーメッセージが表示されます。

$ wget https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz

うーん、このURLにはmd5がありません:(
Kristofer

raw.githubusercontent.com/$ {USER} / $ {REPO} /path/to/file.tar.gz
Maksim Kostromin

10

curl次のコマンドを使用してダウンロードできます。

curl -LO https://github.com/downloads/SpiderLabs/ModSecurity/modsecurity-apache_2.7.1.tar.gz

5
curl -L -OwgetHTTPリダイレクトに従うため、のより優れた代替品です(Githubが私にCDNを指定するため、ここでは特に便利です)。
奇妙な機能'18 / 11/14

また、CentOS 6.5のバージョンで遭遇したことの1つは、curlSNI をサポートwgetしていてサポートしていないことです。そのため、一部のサイトでwgetは、curl正常に機能していても、間違ったホストの証明書が提供され、証明書が失敗することがあります。
rakslice 2014

7

SSLv3の深刻なセキュリティ問題のため、サーバー側でSSLv3暗号化ハンドシェイクが無効になっています。さらに、あなたのwgetクライアントは古いバージョンであり、デフォルトでこのSSLv3暗号化を使用しています。次の2つのオプションがあります。

  • wgetの前に--secure-protocol = TLSv1フラグを使用します。 wget --secure-protocol=TLSv1
  • デフォルトのTLSv1プロトコルとして使用するwgetの更新バージョンをインストールする

5

wgetのバージョンを確認してください。

古いバージョンwget(<1.15)でも同じ問題が発生しました。


2
これは、質問に対するコメントであり、回答ではないようです。
ダニーステープル2015年

0

回避策として、ホストが信頼できる場合は、指定--no-check-certificateまたは追加してみてください。

check_certificate = off

あなたの中に~/.wgetrc(お勧めしません)。

一部のまれなケースでは、システム時刻が同期していない可能性があるため、以前は機能していた証明書が無効になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.