2013-03-21 10 views
5

Ho sviluppato un sito localmente che autentica contro un collegamento centrailzato. Uno dei passaggi richiede di eseguire una richiesta di ricciolo a una risorsa https per ottenere un token di accesso.Come abilitare il supporto CURLOPT_SSL_VERIFYHOST = 2 sul mio sistema operativo/PHP

parte della configurazione del riccio è:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);           
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 

Come potete vedere ho commentato l'opzione CURLOPT_SSL_VERIFYHOST. Ho letto su php.net e su vari blog/stackoverflow (Security consequences of disabling CURLOPT_SSL_VERIFYHOST (libcurl/openssl)) post CHE COSA significano queste opzioni.

Sulla mia macchina di sviluppo CURLOPT_SSL_VERIFYHOST 2 ha funzionato bene. Sto solo usando l'installazione vanilla php fornita nel pacchetto php5 di ubuntu 12.04 e php5-curl.

In produzione (cloudites di rackspace) il CURLOPT_SSL_VERIFYHOST 2 non funziona, motivo per cui l'ho modificato in falso per verificare che questo fosse il problema. Visto che non ho fatto nulla esplicitamente per abilitare questo sul mio localhost, non so quali direttive/opzioni di configurazione lo controllino.

Quello che voglio dire è "non funziona" è che sulla produzione la chiamata ricciolo restituisce un http_code del 0 quando il VERIFYHOST è impostato su 2. Quando ho impostato a FALSE esso restituisce un codice di stato di 200

La mia domanda è:

Come posso permettere SSL_VERIFYHOST su una macchina Linux?

Qualsiasi aiuto sarebbe molto apprezzato. Grazie.

+2

del ricciolo è '2' per questa impostazione: http://php.net/manual/en/function.curl-setopt.php –

risposta

4

Per "2" è necessario assicurarsi che il nome comune nel certificato SSL corrisponda al nome host utilizzato. Questa è l'impostazione predefinita e deve essere semplice fino a quando il certificato SSL viene creato correttamente per il nome host (nome comune) su cui lo stai utilizzando.

Dal manuale PHP curl_setopt:

1 per verificare l'esistenza di un nome comune nel certificato SSL peer. 2 per verificare l'esistenza di un nome comune e verificare anche che corrisponda al nome host fornito. Negli ambienti di produzione il valore di questa opzione deve essere mantenuto a 2 (valore predefinito). predefinito

Manual Entry for curl_setopt

Problemi correlati