2013-03-21 9 views
5

Ich habe eine Website lokal entwickelt, die gegen eine centrailzed Anmeldung authentifiziert. Einer der Schritte erfordert, dass ich eine Curl-Anfrage an eine https-Ressource mache, um ein Zugriffs-Token zu erhalten.Wie CURLOPT_SSL_VERIFYHOST = 2 Unterstützung auf meinem OS/PHP zu aktivieren

Teil der Locke config:

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

Wie man sehen kann ich aus der CURLOPT_SSL_VERIFYHOST Option kommentiert. Ich habe auf php.net gelesen und auf verschiedenen Blogs/stackoverflow (Security consequences of disabling CURLOPT_SSL_VERIFYHOST (libcurl/openssl)) Beiträge was diese Optionen bedeuten.

Auf meiner Entwicklungsmaschine hat CURLOPT_SSL_VERIFYHOST 2 funktioniert gut. Ich benutze nur die Vanille-PHP-Installation, die in ubuntu 12.04 php5-Paket zur Verfügung gestellt wird, und php5-curl.

Auf der Produktion (Rackspace Cloudsites) funktioniert die CURLOPT_SSL_VERIFYHOST 2 nicht, weshalb ich es in false geändert, um zu überprüfen, dass dies das Problem war. Da ich nicht explizit etwas getan habe, um dies auf meinem lokalen Host zu aktivieren, weiß ich nicht, welche Direktiven/Konfigurationsoptionen dies steuern.

Was meine ich mit es „funktioniert nicht“ ist, dass die curl Anruf auf die Produktion eine http_code von 0 zurückkehrt, wenn die VERIFYHOST-2 gesetzt. Als ich es FALSE gesetzt wird Rückkehr einen Statuscode von 200

Meine Frage ist:

Wie kann ich ermöglichen SSL_VERIFYHOST auf einem Linux-Box?

Jede Hilfe würde sehr geschätzt werden. Vielen Dank.

+2

Verzugs des curl ist '2' für diese Einstellung: http://php.net/manual/en/function.curl-setopt.php –

Antwort

4

Für '2' müssen Sie sicherstellen, dass der allgemeine Name im SSL-Zertifikat dem verwendeten Hostnamen entspricht. Dies ist die Standardeinstellung und sollte unkompliziert sein, solange das SSL-Zertifikat für den Hostnamen (allgemeiner Name), für den Sie es verwenden, ordnungsgemäß erstellt wurde.

Von dem PHP curl_setopt Handbuch:

1 die Existenz eines gemeinsamen Namen in dem SSL-Peer-Zertifikat zu überprüfen. 2, um das Vorhandensein eines allgemeinen Namens zu überprüfen und zu überprüfen, ob er mit dem angegebenen Hostnamen übereinstimmt. In Produktionsumgebungen sollte der Wert dieser Option bei 2 gehalten werden (Standardwert).

Manual Entry for curl_setopt

Verwandte Themen