Curl sslv3 uyarısı el sıkışma hatası düzeltmek için?


27

HTTPS web sitesini aşağıdaki şekilde kıvırmaya çalışıyorum:

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

Ancak hata ile başarısız olur:

* 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

Kullanılması -k/ --insecureveya ekleme insecurekardeşime karşı ~/.curlrcherhangi bir fark yapmaz.

curlKomut satırını kullanarak sertifikayı nasıl yok sayabilir veya zorlayabilirim ?


Kullanırken wgetiyi çalışıyor gibi görünüyor. Ayrıca opensslaşağıdaki şekilde test ederken de çalışır :

$ 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

Ya sahibim:

$ 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 

Yanıtlar:


20

Bazı siteler SSL 3.0 desteğini devre dışı bırakır (birçok istismar / güvenlik açığı nedeniyle mümkündür), bu nedenle belirli SSL sürümlerini -2/ --sslv2veya -3/ ile zorlamak mümkündür --sslv3. Ayrıca -Listenen sayfa farklı bir konuma taşınmış olması durumunda bir cami.

Benim durumumda bir curlhata oldu ( OpenSSL'de bulundu ), bu nedenle curlen son sürüme (> 7.40) yükseltilmesi gerekiyordu ve iyi çalıştı.

Ayrıca bakınız:


Evet, yükseltme kıvrılması benim için sorunu çözdü. Teşekkürler.
Simon East

En son kıvrılma eski sunucuların hala kullanabileceği eski RC4 şifresini beğenmez, bu yüzden özellikle izin vermek için "--ciphers RC4" kullanarak sona erdi
maxpolk

@SimonEast Hangi sürüme hangi sürümden ulaştınız?
Olle Härstedt 15: 37'de

5

Apple, Mavericks ile başlayarak, TLS / SSL motorunu, OpenSSL'den Apple sertifikalı cURL binary'de istemci sertifikası kullanımını kıran kendi Secure Transport motoruna geçirdi. CURL ikili kodunu homebrew'den kullanın:

brew install curl
brew link curl --force

1
brew link curl --forceartık işe export "$(brew --prefix curl)/bin:$PATH"yaramazsa, bunun yerine .bash_profile dosyasını girmelisiniz .
Lars Nyström

1

Yanlış bir ana bilgisayar üstbilgisi gönderirken bu hatayı aldım.

Http://127.0.0.1:12345 - https://site.com:443 arasında bir proxy geliştiriyordum . bu yüzden tarayıcıdan geldiği gibi istek başlıkları gönderiyorum ve ana bilgisayar: 127.0.0.1: 12345 başlık. Sorunu çözmek için tarayıcıdan gelen ana bilgisayar başlığını sildim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.