TLS rizo POST que resulta en un error SSLv3

0

Estoy intentando realizar una solicitud POST a través de curl a un servidor que solo admite TLS 1.2, TLS 1.1 y TLS 1.0. Sin embargo, incluso cuando trato de especificar la necesidad de TLS en lugar del SSL v. 3 predeterminado (agregando --- tlsv1) obtengo la siguiente respuesta:

curl: (35) error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

Esta es la versión de curl que estoy usando:

curl 7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5

No hay problemas con el firewall para resolver la URL.

¿Cómo puedo hacer que el POST tenga éxito?

Actualización: También he intentado realizar la solicitud con Python para intentar averiguar cuál es el problema. La URL es interna, por lo que no puedo compartir eso, pero se agradecería la ayuda sobre cuál podría ser el problema de configuración. Aquí está el error de Python:

urllib2.URLError: <urlopen error (1, 'error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure')>

Jake
fuente
¿Cuál es la URL del servidor al que está intentando conectarse? Si no lo proporciona, no podemos ayudarlo a resolverlo. Probablemente tendremos que cerrar la pregunta como "no se puede duplicar".
jww

Respuestas:

2

¿Cómo puedo hacer que el POST tenga éxito?

Es difícil decir cuál es el problema sin saber la URL exacta. Pero dada la versión de curl que está usando, es posible que el servidor requiera Indicación del nombre del servidor (SNI) que no es compatible con la versión anterior de curl que está utilizando.

Steffen Ullrich
fuente
Recibo el mismo error al realizar la solicitud con Python. es decir, urllib2.URLError: & lt; urlopen error (1, 'error: 14077410: rutinas SSL: SSL23_GET_SERVER_HELLO: falla de reconocimiento de alerta sslv3') & gt;
Jake
@JakeWasdin: Los cambios son altos y su Python también es demasiado antigua. SNI es compatible desde Python 2.7.9 solamente.
Steffen Ullrich
0

El error "handshake" indica que el cliente y el servidor no pudieron ponerse de acuerdo sobre cómo configurar los requisitos del canal seguro para HTTPS. La versión de OpenSSL que está utilizando es muy antigua y solo comprende SSL hasta sslv3, que el servidor requiere como mínimo. Por lo tanto, el error "sslv3": le informa que intentó hablar SSL v3 (que es menor que TLS v1) y no pudo obtener una respuesta significativa.

No tiene suerte sin una actualización a una versión más reciente de OpenSSL, e incluso entonces la versión de rizo también debe ser golpeada para manejar la versión más nueva de TLS.

Liam Dennehy
fuente