openssl 1.0.1 update on 12.04 has broken a curl command

0

Após atualizar o openssl em nosso servidor dev para a versão 1.0.1-4ubuntu5.31 , um script que contém um comando curl para um servidor específico não se conecta mais. Estávamos executando o openssl 1.0.1-4ubuntu5.25 . Curl executa a conexão inicial com sucesso. O problema entra em jogo quando tentamos o GET e recebemos o erro:

GET /some/directory/on_the_remote_server HTTP/1.1
User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
Host: host.connection.com
Accept: */*

* SSLv3, TLS handshake, Hello request (0):
* SSLv3, TLS handshake, Client hello (1):
* SSL read: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure, errno 0
* Closing connection #0
curl: (56) SSL read: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure, errno 0

(isso foi higienizado para proteger informações privadas)

Confirmei que não há alterações no servidor de conexão. Qualquer ajuda seria muito apreciada, pois não consegui encontrar nada para corrigir este erro.

    
por Lee Higginbotham 28.07.2015 / 18:53

1 resposta

1

Sem ter mais detalhes sobre o servidor, meu palpite é que o servidor usa chaves Diffie-Hellmann fracas e que o handshake SSL falhará porque o OpenSSL foi corrigido para impor chaves DH mais strongs. O motivo dessa correção é a publicação recente do ataque Logjam .

A partir do Changelog

% bl0ck_qu0te%

Afetados são apenas cifras DH. Para desabilitar o uso de cifras DH, você pode usar a opção ciphers , ou seja,

  curl --ciphers 'DEFAULT:!DH' url

Mas você também deve consertar seu servidor. Para mais informações sobre como fazer isso, veja aqui .

    
por Steffen Ullrich 28.07.2015 / 19:18