cURL richiede a curlopt_ssl_verifypeer=FALSE

Stavo usando cURL sul mio localhost per più tempo, e tutti all’improvviso ho notato che non funziona più a meno che io non esplicitamente impostata l’opzione, CURLOPT_SSL_VERIFYPEER=FALSE.

Non ho idea di come/quando questo è cambiato, ma io sto usando il NGINX e PHP e posso verificare che questo non è un problema specifico di un determinato host richiesto. Io sono sempre vuote risposte da https://site1.com e https://different-site.com.

Qualcuno ha qualche idea?

  • Amo questo gemma nascosta, spiega come è possibile utilizzare i certificati per verificare padroni di casa.
  • unitstep.net/blog/2009/05/05/…
  • e [email protected] grazie, ma hai un senso del perché non ho bisogno di fornire un certificato prima, ma ora?
  • Da un’altra risposta stessa domanda. cURL usato per impacchettare CA certs, ma ora è necessario scaricare manualmente e farli passare per arricciare o dare un valore predefinito all’interno di PHP.
  • tali risposte sono 2 anni che questo problema è sorto per me nell’ultimo mese.
  • Vorrei chiedere se sono state apportate modifiche all’ambiente, io.e, *.ini file in fase di reset o di avere i file spostati (CA certs mancanti). Oltre a questo, non credo cURL avrebbe funzionato, pur avendo CURLOPT_SSL_VERIFYPEER => 1 e non certificati per verificare la parità. Potresti fornire qualche informazione in più sul tuo host? È condivisa, homeroot, vps, dedicati?
  • Io sono l’unico utente dell’host, è solo il mio mac portatile, così ho probabilmente avvitato qualcosa. Devo aver installato un certificato a un certo punto, ma vorrei avere idea di quando l’ho fatto e più preoccupante perché è stato rimosso. Io sono ancora più recente di un sviluppatore in modo tentando lentamente ween di distanza dal copia/incolla di cose che ho imparato su internet.

InformationsquelleAutor tim peterson | 2013-09-24



2 Replies
  1. 36

    Grazie a Dave di Chen suggerimenti, ho capito che devo aver perso il mio certificato. Il problema è stato risolto da questo modulo fornito dalla cURL creatore (estratta da Mozilla): https://curl.haxx.se/ca/cacert.pem

    Così, dopo il download di questo cacert.pem file nel progetto in PHP, è possibile ora fare questo:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
    curl_setopt($ch, CURLOPT_CAINFO, "/path/to/cacert.pem");

    In alternativa, questo può essere impostato a livello globale, aggiungendo il seguente php.ini

    curl.cainfo=/path/to/cacert.pem
    • Io non sono un esperto di sicurezza, ma il download .file pem forma insicuro fonte (http:) può essere attendibile?
    • dove metto questo curl_setopt sintassi se im utilizzando codeigniter
  2. 3

    Se si utilizza WampServer, notare questo:

    Si deve mettere la percorso assoluto in CURLOPT_CAINFO, per esempio:

    curl_setopt ($ch, CURLOPT_CAINFO, 'C:\wamp\www\your-project\cacert.pem')

    Non usare il percorso relativo: curl_setopt ($ch, CURLOPT_CAINFO, ‘cacert.pem’) perché non funziona.

Lascia un commento