Desativar SSLv3 em cURL?

5

Estou com problemas para me conectar a um site hospedado com o CloudFlare usando cURL. Quando tento me conectar ao site com HTTPS (usando curl -v https://www.xxxxxx.com ), ele diz:

* About to connect() to www.xxxxxx.com port 443 (#0)
*   Trying 2400:cb00:2048:1::681c:116e...
* Connected to www.xxxxxx.com (2400:cb00:2048:1::681c:116e) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -12286 (SSL_ERROR_NO_CYPHER_OVERLAP)
* Cannot communicate securely with peer: no common encryption algorithm(s).
* Error in TLS handshake, trying SSLv3...
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.xxxxxx.com
> Accept: */*
>
* Connection died, retrying a fresh connect
* Closing connection 0
* Issue another request to this URL: 'https://www.xxxxxx.com'
* About to connect() to www.xxxxxx.com port 443 (#1)
*   Trying 2400:cb00:2048:1::681c:116e...
* Connected to www.xxxxxx.com (2400:cb00:2048:1::681c:116e) port 443 (#1)
* TLS disabled due to previous handshake failure
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -12286 (SSL_ERROR_NO_CYPHER_OVERLAP)
* Cannot communicate securely with peer: no common encryption algorithm(s).
* Closing connection 1
curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s).

Eu entrei em contato com a CloudFlare sobre esse problema e dizem que é porque o cURL está tentando se conectar usando SSLv3 e a desativaram devido à vulnerabilidade POODLE. Consigo me conectar com o cURL v7.38.0 no FreeBSD 10 sem problemas, mas não com o cURL v7.29.0 no CentOS 6.5.

Se é porque está tentando se conectar ao SSLv3, então como desabilito o SSLv3 no cURL? Ou é outra coisa?

    
por ub3rst4r 18.10.2014 / 07:00

1 resposta

8

Parece que esse problema é causado pela versão do cURL que não suporta certificados SSL ECC de 256 bits e pelo algoritmo de assinatura ECDSA (que é usado pelo CloudFlare). Você pode testar para ver se a sua versão do cURL suporta esta criptografia executando:

curl -1IsS --ciphers ecdhe_ecdsa_aes_128_sha https://sslspdy.com

Se você receber o seguinte, a sua cURL está desatualizada:

curl: (59) Unknown cipher in list: ecdhe_ecdsa_aes_128_sha

Caso contrário, se ele se conectar e não exibir um erro, ele estará atualizado.

Como o CentOS parece fazer uma varredura completa das atualizações antes que elas sejam aplicadas aos seus pacotes, é difícil dizer quando isso será corrigido. A SOMENTE maneira de contornar isso é atualizando cURL, passando -k ou --insecure não funcionará.

    
por 19.10.2014 / 07:11