O PHP Curl (com NSS) provavelmente está usando SSLv3 instalado no TLS ao conectar-se a https

Estou usando a biblioteca de curl (com NSS) em PHP para conectar-se ao meu outro servidor. Tudo estava bem até a semana passada, quando o servidor de destino parou de oferecer suporte ao SSLv3 devido à vulnerabilidade do poodle (a propósito, o CloudFlare). Agora, estou tentando fazer a conexão usando TLS, mas ainda estou recebendo o "erro de conexão SSL".

Existe um código de exemplo, estou usando:

$ch = curl_init();
curl_setopt_array( $ch, array(
    CURLOPT_URL => 'https://www.lumiart.cz',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSLVERSION => 1,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_VERBOSE => true
) );
$output = curl_exec( $ch );
echo $output;

print_r( curl_getinfo( $ch ) );

echo 'error:' . curl_error( $ch );

curl_close($ch);

Pelo meu entendimento, definindoCURLOPT_SSLVERSION para1 deve forçar a conexão via TLS.

Nota: eu tenhoCURLOPT_SSL_VERIFYPEER => false apenas para depuração e não pretendo deixá-lo lá, depois que eu descobrir esse problema.

Isso é produzido:

Array
(
    [url] => https://www.lumiart.cz
    [content_type] => 
    [http_code] => 0
    [header_size] => 0
    [request_size] => 0
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0
    [namelookup_time] => 2.3E-5
    [connect_time] => 0.005777
    [pretransfer_time] => 0
    [size_upload] => 0
    [size_download] => 0
    [speed_download] => 0
    [speed_upload] => 0
    [download_content_length] => -1
    [upload_content_length] => -1
    [starttransfer_time] => 0
    [redirect_time] => 0
    [certinfo] => Array
        (
        )

    [primary_ip] => 2400:cb00:2048:1::681c:86f
    [redirect_url] => 
)
error:SSL connect error

Eu tenho tudo isso no provedor de hospedagem compartilhada, portanto não posso alterar nenhuma configuração do php.ini ou atualizar nenhum componente. Tudo o que tenho é phpinfo (). Eu verifiquei o suporte a TLS na versão desses componentes e deve estar bem. Aqui está um trecho do phpinfo:

PHP Version 5.4.32
System  Linux wl42-f262 2.6.32-431.5.1.el6.x86_64 #1 SMP Wed Feb 12 00:41:43 UTC 2014 x86_64

curl:
cURL support    enabled
cURL Information    7.19.7
Age 3
Features
AsynchDNS   No
Debug   No
GSS-Negotiate   Yes
IDN Yes
IPv6    Yes
Largefile   Yes
NTLM    Yes
SPNEGO  No
SSL Yes
SSPI    No
krb4    No
libz    Yes
CharConv    No
Protocols   tftp, ftp, telnet, dict, ldap, ldaps, http, file, https, ftps, scp, sftp
Host    x86_64-redhat-linux-gnu
SSL Version NSS/3.15.3
ZLib Version    1.2.3
libSSH Version  libssh2/1.4.2

Acho que esse problema é o uso do SSLv3 em vez do TLS, mas não tenho 100% de certeza. Tudo o que estou recebendo é "Erro de conexão SSL" e não sei como descobrir qual versão SSL foi usada para conectar.

Existe uma maneira, como verificar, qual versão SSL é usada para conexão? Ou eu estou esquecendo de alguma coisa?

Obrigado por qualquer conselho!

questionAnswers(4)

yourAnswerToTheQuestion