Ho utilizzato il seguente blocco di codice per raccogliere dati da un sito Web HTTPS utilizzando cURL.Errore cURL (35): errore: 14077458: routine SSL: SSL23_GET_SERVER_HELLO: nome non riconosciuto tlsv1
$q = 'https://www.example.org/'; // for example
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $q);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$json = curl_exec($ch);
cURL mostra il seguente errore
error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 unrecognized name
Questo potrebbe essere correlato alla versione precedente OpenSSL, ma come il sito si trova in un hosting condiviso, le impostazioni lato server non può essere modificata in questo momento. Tutto quello che posso fare è cambiare i parametri di cURL.
Ho controllato qui https://www.ssllabs.com/ssltest/analyze.html per vedere i protocolli disponibili per quel server, trovato SSL3 e SSL2 non sono disponibili, ma sono disponibili TLS 1.2, TLS 1.1 e TLS 1.0. Cercando su Google, ho trovato la cosa migliore non specificando la versione SSL che effettivamente negoziava automaticamente il miglior livello da utilizzare. Anche se, ho provato con l'impostazione della versione TLS in CURLOPT_SSLVERSION (come segue), ma si verifica lo stesso errore.
curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);
Ho provato molto per gli ultimi giorni, ma tutti i tentativi sono andati invano.
Ho cercato di spiegare tutte le cose che ho fatto, ma chiunque si chiede se sono necessarie ulteriori informazioni. Qualsiasi aiuto sarebbe molto apprezzato.
Grazie mille