PHP Curl (mit NSS) verwendet wahrscheinlich SSLv3, das von TLS installiert wurde, wenn eine Verbindung zu https @ hergestellt wir

Ich verwende die Curl-Bibliothek (mit NSS) in PHP, um eine Verbindung zu meinem anderen Server herzustellen. Bis letzte Woche war alles in Ordnung, als der Zielserver die Unterstützung von SSLv3 aufgrund einer Pudel-Sicherheitslücke einstellte (CloudFlare übrigens). Jetzt versuche ich, eine Verbindung mit TLS herzustellen, aber es wird immer noch "SSL-Verbindungsfehler" angezeigt.

Es gibt Beispielcode, den ich verwende:

$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);

Nach meinem Verständnis, EinstellungCURLOPT_SSLVERSION zu1 sollte die Verbindung über TLS erzwingen.

Hinweis: Ich habeCURLOPT_SSL_VERIFYPEER => false nur zum Debuggen und ich habe nicht vor, es dort zu lassen, sobald ich dieses Problem herausgefunden habe.

Dies wird ausgegeben:

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

Ich habe all dies bei Shared Hosting-Anbietern, daher kann ich keine php.ini-Konfiguration ändern oder Komponenten aktualisieren. Alles was ich habe ist phpinfo (). Ich habe auf TLS-Unterstützung für diese Komponenten-Version geprüft und es sollte in Ordnung sein. Hier ist ein Auszug aus 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

Ich denke, dieses Problem ist die Verwendung von SSLv3 anstelle von TLS, aber ich bin nicht 100% sicher. Ich erhalte nur "SSL connect error" und weiß nicht, wie ich herausfinden soll, mit welcher SSL-Version die Verbindung hergestellt wurde.

Gibt es eine Möglichkeit, wie man überprüft, welche SSL-Version für die Verbindung verwendet wird? Oder vermisse ich etwas?

Danke für jeden Rat!

Antworten auf die Frage(4)

Ihre Antwort auf die Frage