2011-12-23 11 views
10

Se corro riccio nei confronti di una macchina che esegue OpenSSL 1.0.0e per esempio:L'arricciatura in esecuzione con OpenSSL 0.9.8 contro il server OpenSSL 1.0.0 causa un errore di handshake?

curl -v https://shumaker.flexrentalsolutions.com 

su una macchina che esegue OpenSSL 0.9.8r ottengo il seguente errore:

About to connect() to shumaker.flexrentalsolutions.com port 443 (#0) 
* Trying 50.112.122.15... connected 
* Connected to shumaker.flexrentalsolutions.com (50.112.122.15) port 443 (#0) 
* SSLv3, TLS handshake, Client hello (1): 
* error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112) 
* Closing connection #0 

Se Eseguo lo stesso comando di arricciatura su una macchina che esegue OpenSSL 1.0.0e il comando termina senza alcun problema.

Sembra che l'handshake non si completi correttamente, apparentemente a causa di alcune incompatibilità tra le due versioni di OpenSSL.

Qualche idea su come risolvere questo problema?

risposta

6

Questo è un bug (OpenSSL) ancora aperto. I dettagli sono stati pubblicati in questo curl bug report.

Ulteriori dettagli sono stati posted to OpenSSL-dev di "mancha".

+0

sono stato in grado di ottenere Apache per usare OpenSSL 0.9.8 by usando un modulo mod_ssl build che punta a OpenSSL 0.9.8. Fare quel cambiamento si è preso cura del problema. Qualche idea su come correggere il bug di OpenSSL 1.0.0? – rogiller

0

Questa non è una soluzione di buon , ma è meglio che ruota gira, così ho intenzione di aggiungere qui come una risposta:

Utilizza il modulo GnuTLS invece di mod_ssl, se potete. Non è legato a OpenSSL, quindi questo orribile, spreco di tempo è ben nascosto.

14

Se si imposta la versione openssl nel protocollo, funziona:

Per la riga di comando:

curl -v -3 https://shumaker.flexrentalsolutions.com 

Se in php:

curl_setopt($ch, CURLOPT_SSLVERSION,3); 
+0

Ho avuto questo errore di bug openssl menzionato dall'OP. La soluzione di @jbaylina ha risolto il mio problema. grazie! – ThinkBonobo

0

Ora a causa della POODLE vulnerability molti i siti ora disattivano SSL 3.0

Tu dovrebbe usare TLS come questo:

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1)

Se avete ancora l'errore (per Apache) verificare se il vhost ottenere l'impostazione corretta ServerName

+0

POODLE non esisteva nel 2011. Sapevamo che il bug del padding esisteva già nel 2005 o giù di lì, ma la maggior parte della gente ha scelto di ignorarlo. I browser facevano parte del problema perché mantenevano SSLv3 abilitato per così tanto tempo.Vedi le differenze tra SSLv2, SSLv3 e TLS di Loren Weith (http://www.yaksman.org/~lweith/ssl.pdf). – jww

0

ho questo problema su OS X utilizzando birra su alcuni server HTTPS , brew usa arricciatura internamente. Nota questo è solo su OS X 10.7.5, che è bloccato su OpenSSL/0.9.8r. Vorrei aggiornare ma Apple non supporta> 10.7 su questo iMac!

La mia difficoltà è stato quello di aggiornare riccio con birra, che alza la versione da 1.0.2f, per fortuna la birra installazione del riccio non si

brew install curl 
Problemi correlati