A causa dello recent vulnerability discovered in SSLv3, molti provider di servizi Web (ad es. PayPal, Facebook, Google) lo disattivano e vogliono che usiamo TLS. Sto avendo un po 'di problemi a capire come farlo.Aggiorna la richiesta PHP cURL da SSLv3 a TLS ..?
Attualmente sto usando la seguente funzione per gestire le mie richieste cURL.
function CURLRequest($Request = "", $APIName = "", $APIOperation = "", $PrintHeaders = false)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_URL, $this->EndPointURL);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $Request);
if($this->APIMode == 'Certificate')
{
curl_setopt($curl, CURLOPT_SSLCERT, $this->PathToCertKeyPEM);
}
$Response = curl_exec($curl);
/*
* If a cURL error occurs, output it for review.
*/
if($this->Sandbox)
{
if(curl_error($curl))
{
echo curl_error($curl).'<br /><br />';
}
}
curl_close($curl);
return $Response;
}
quando cerco di colpire sandbox di PayPal, però, dove hanno già disabilitate questo, io alla fine con un errore di cURL: errore: 14077410: routine SSL: SSL23_GET_SERVER_HELLO: SSLv3 avviso errore di handshake
Le informazioni che ho trovato sono che ho solo bisogno di cambiare questo per usare TLS invece di SSL, e le altre risposte che ho visto dicono di farlo semplicemente aggiungendo un'opzione di arricciatura alla mia funzione ...
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
Ho aggiunto tha t opzione, comunque, e ottengo lo stesso identico risultato. Qualsiasi informazione su come posso ottenere questo lavoro sarebbe molto apprezzata. Grazie!
Sei su una vecchia versione di Curl? Guardando [questa risposta] (http://stackoverflow.com/questions/26452755/php-curl-is-probably-using-sslv3-insted-of-tls-when-connecting-to-https) sembra almeno 7.19 ha problemi con TLS. – cOle2
Sì, l'ho visto anch'io. Cercando di capire come vedere la mia versione arricciata ora. Non ho mai avuto problemi con questo prima. –
Sembra che io sia su 7.36.0, quindi non dovrebbe essere il mio problema. –