TLS curl POST resultando em erro SSLv3

0

Estou tentando fazer uma solicitação POST via curl para um servidor que suporta apenas o TLS 1.2, o TLS 1.1 e o TLS 1.0. No entanto, mesmo quando tento especificar a necessidade de TLS em vez do SSL padrão v. 3 (somando --- tlsv1), recebo a seguinte resposta:

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

Esta é a versão do curl que estou 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

Não há problemas de firewall na resolução do URL.

Como posso tornar o POST bem-sucedido?

Atualização: Eu também tentei fazer a solicitação com o Python para tentar descobrir qual é o problema. A URL é interna, portanto, não posso compartilhar isso, mas a ajuda seria apreciada quanto ao que poderia ser o problema de configuração. Aqui está o erro do Python:

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

    
por Jake 19.01.2016 / 16:19

2 respostas

2

How can I make the POST successful?

Difícil dizer qual é o problema sem saber o URL exato. Mas, dada a versão do curl que você está usando, pode ser que o servidor requeira Indicação do nome do servidor (SNI) , que não é suportado pela versão antiga do curl que você está usando.

    
por 19.01.2016 / 20:00
0

O erro "handshake" indica que o cliente e o servidor não puderam concordar sobre como configurar o canal seguro requerido para HTTPS. A versão do OpenSSL que você está usando é muito antiga e só entende SSL até sslv3, o que o servidor exige no mínimo. Daí o erro "sslv3" - ele está informando que tentou falar com o SSL v3 (que é menor que o TLS v1) e falhou em obter uma resposta significativa.

Você está sem sorte sem atualizar para uma versão mais recente do OpenSSL e, mesmo assim, a versão curl também precisa ser alterada para lidar com a versão mais recente do TLS.

    
por 25.07.2017 / 15:51