2011-12-23 17 views
10

Si me quedo rizo contra una máquina que está ejecutando OpenSSL 1.0.0e por ejemplo:¿Ejecutar el curl con OpenSSL 0.9.8 contra el servidor OpenSSL 1.0.0 causa un error de handshake?

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

en una máquina que está ejecutando OpenSSL 0.9.8r me sale el siguiente error:

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 

Si Ejecuto el mismo comando curl en una máquina que ejecuta OpenSSL 1.0.0e. El comando finaliza sin ningún problema.

Al parecer, el apretón de manos no está completando correctamente, al parecer debido a algún tipo de incompatibilidad entre las dos versiones de OpenSSL.

alguna idea de cómo solucionar este problema?

Respuesta

6

Este es un error (OpenSSL) que todavía está abierto. Los detalles se han publicado en este curl bug report.

Más detalles posted to OpenSSL-dev fue por "mancha".

+0

que era capaz de conseguir Apache para usar OpenSSL 0.9.8 por utilizando una construcción de módulo mod_ssl que apuntaba a OpenSSL 0.9.8. Hacer ese cambio solucionó el problema. ¿Alguna idea de cuándo se solucionará el error de OpenSSL 1.0.0? – rogiller

0

Esto no es una solución buena, pero es mejor que el giro de la rueda, así que voy a añadir aquí como una respuesta:

Uso del módulo GnuTLS en lugar de mod_ssl, si es posible. No está ligado a OpenSSL, por lo que este horrible problema de pérdida de días es claramente eludido.

14

Si configura la versión de OpenSSL en el protocolo, funciona:

Para la línea de comandos:

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

Si en php:

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

Tuve este error de error de openssl mencionado por el OP. La solución de @jbaylina resolvió mi problema. ¡gracias! – ThinkBonobo

0

Ahora, debido a la POODLE vulnerability muchos sitios están ahora incapacitantes SSL 3.0

Usted debe utilizar TLS así:

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1)

Si todavía tiene errores (para Apache) comprobar si su vhost conseguir el ajuste correcto ServerName

+0

POODLE no existía en 2011. Sabíamos que el error de relleno existía ya en 2005, pero la mayoría de las personas optaron por ignorarlo. Los navegadores fueron parte del problema porque mantuvieron SSLv3 habilitado por tanto tiempo.Ver Loren Weith [Diferencias entre SSLv2, SSLv3 y TLS] (http://www.yaksman.org/~lweith/ssl.pdf). – jww

0

tengo este problema en OS X usando cerveza en algunos servidores https , brew usa curl internamente. Tenga en cuenta que esto es solo en OS X 10.7.5, que está atascado en OpenSSL/0.9.8r. Actualizaría, pero Apple no es compatible con> 10.7 en este iMac.

Mi solución era mejorar rizo con cerveza, que sube la versión a 1.0.2f, por suerte la cerveza instalación de rizo no se

brew install curl