curl sslv3アラートハンドシェイクエラーを修正する方法


27

次の方法でHTTPS Webサイトをカールしようとしています。

$ curl -v https://thepiratebay.se/

ただし、次のエラーで失敗します。

* About to connect() to thepiratebay.se port 443 (#0)
*   Trying 173.245.61.146...
* connected
* Connected to thepiratebay.se (173.245.61.146) port 443 (#0)
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS alert, Server hello (2):
* error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
* Closing connection #0
curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

-k/ を使用してもmyに--insecure追加insecureして~/.curlrcも違いはありません。

curlコマンドラインを使用して証明書を無視または強制するにはどうすればよいですか?


使用するwgetとうまくいくようです。openssl以下のようにテストするときにも機能します:

$ openssl s_client -connect thepiratebay.se:443
CONNECTED(00000003)
SSL handshake has read 2651 bytes and written 456 bytes
New, TLSv1/SSLv3, Cipher is AES128-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA

私がしました:

$ curl --version
curl 7.28.1 (x86_64-apple-darwin10.8.0) libcurl/7.28.1 OpenSSL/0.9.8| zlib/1.2.5 libidn/1.17
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz 

回答:


20

一部のサイトではSSL 3.0のサポートを無効にしているため(多くのエクスプロイト/脆弱性が原因である可能性があります)、特定のSSLバージョンを-2/ --sslv2または-3/で強制することができ--sslv3ます。また、-L要求されたページが別の場所に移動した場合は試してみる価値はあります。

私の場合、それはcurlバグ(OpenSSLで見つかった)であったcurlため、最新バージョン(> 7.40)にアップグレードする必要があり、正常に機能しました。

こちらもご覧ください:


はい、curlをアップグレードすると問題が解決しました。ありがとう。
サイモンイースト

最新のcurlは、古いサーバーがまだ使用する可能性のある古いRC4暗号を嫌うため、最終的に「--ciphers RC4」を使用して具体的に許可することになりました
-maxpolk

@SimonEastどのバージョンからどのバージョンにアップグレードしましたか?
オルレハーステット

5

Mavericksから、AppleはTLS / SSLエンジンをOpenSSLからApple分散cURLバイナリの独自のセキュアトランスポートエンジンに切り替えました。これにより、クライアント証明書の使用が中断されます。homebrewのcURLバイナリを使用します。

brew install curl
brew link curl --force

1
brew link curl --force動作しなくなったため、export "$(brew --prefix curl)/bin:$PATH"代わりに.bash_profileを配置する必要があります。
ラース・ニストロム

1

間違ったホストヘッダーを送信すると、このエラーが発生しました。

http://127.0.0.1:12345からhttps://site.com:443へのプロキシを開発していました。そのため、ブラウザから送信されたリクエストヘッダーをそのまま送信しており、host:127.0.0.1:12345ヘッダーがありました。この問題を解決するために、ブラウザーから送信されたホストヘッダーを削除しました。

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