Estoy lidiando con un problema en python no se puede conectar a un servidor específico a través de ssl debido a openssl no ser capaz de completar el apretón de manos. Curl y mi navegador trabajo. Yo he probado un par de diferentes versiones de openssl y soluciones, pero parece que no puede conectar.

Aquí es lo que he intentado en dos de las siguientes plataformas. El resultado se imprime ligeramente diferentes en OpenSSL 1.0.1 e, pero sigue el mismo error.

Mac OSX Yosemite - OpenSSL 0.9.8zg 14 July 2015
Debian GNU/Linux 7 (wheezy) - OpenSSL 1.0.1e 11 Feb 2013

Sin especificar qué versión de

openssl s_client -connect www.uk-recruitment.net:443
openssl s_client -connect www.uk-recruitment.net:443 -cipher 'DEFAULT:!ECDH'
openssl s_client -connect www.uk-recruitment.net:443 -CAfile cacert.pem
openssl s_client -connect www.uk-recruitment.net:443 -CAfile cacert.pem -cipher 'DEFAULT:!ECDH'
openssl s_client -connect www.uk-recruitment.net:443 -CAfile cacert.pem -cipher 'DEFAULT:!ECDH' -servername uk-recruitment.net

pero siempre obtengo el mismo resultado

CONNECTED(00000003)
66716:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/ssl/s23_clnt.c:593: 

Si puedo añadir -tls1, -tls1_1 o -tls1_2 con las mismas opciones, me da un poco diferente de error:

openssl s_client -connect www.uk-recruitment.net:443 -tls1
CONNECTED(00000003)
66750:error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal error:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/ssl/s3_pkt.c:1145:SSL alert number 80
66750:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/ssl/s3_pkt.c:566:

1 Comentario

  1. 10

    Los sitios requiere de Server Name Indication (SNI) SSL y los apretones de manos, no usar SNI puede producir el fracaso:

    $ openssl s_client -connect www.uk-recruitment.net:443
    CONNECTED(00000003)
    139999237719712:error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error:s23_clnt.c:770:
    

    Con SNI lugar se ve mucho mejor:

    $ openssl s_client -connect www.uk-recruitment.net:443 -servername www.uk-recruitment.net
    CONNECTED(00000003)
    ...
       Cipher    : ECDHE-ECDSA-AES128-GCM-SHA256
    

    Podría ser que el -servername opción no está disponible con OpenSSL 0.9.8, pero debe ser con OpenSSL 1.0.1.

    • Gracias, la bandera se muestra como disponible en 0.9.8, pero todavía se dio el mismo error (con prefijo www y no) así que supuse que no era la solución. Tratando sobre 1.0.1 obras.
    • Por ssllabs que están en cloudflare y requieren SNI, mínimo TLSv1.0, y ECDHE-ECDSA keyexchange, y la prueba muestra que también requieren de un «nuevo estilo» Hola (no SSLv2-compatible), que es el predeterminado para 0.9.8. 1.0.0 con -servername funciona, pero 1.0.1 o 1.0.2 es mejor, ya que lograr TLSv1.2 y GCM. 0.9.8 puede trabajar con los -tls1 -ciphers ECCdraft:HIGH:!aNULL -servername, pero cada vez más incómoda.

Dejar respuesta

Please enter your comment!
Please enter your name here