Kein Abstoßen von CurlException: 60 (cURL SSL-Zertifikatsverifizierung)

8

Der Fehler, den viele Leute mit der Facebook-Authentifizierung bekommen, ist:

%Vor%

Und die einzige Information, die ich darüber finden kann, schlägt vor, die folgenden Codezeilen zu curl hinzuzufügen:

%Vor%

Ich weiß, das funktioniert, aber was geht hier vor? Gibt es keine Servereinstellungen / Konfigurationen, die geändert werden können, anstatt die facebook.php zu hacken?

    
John 04.09.2010, 15:01
quelle

3 Antworten

17

Was es macht & amp; Bedeutung:

Der folgende Code weist die cURL an, NICHT zu überprüfen, ob Sicherheitszertifikate korrekt sind. Daher verschwindet der Fehler.

%Vor%

Wenn Sie eine Verbindung zu einem Remoteserver mit SSL herstellen, ist das Zertifikat möglicherweise ungültig, abgelaufen oder nicht von einer anerkannten Zertifizierungsstelle signiert. Das cURL prüft es normalerweise.

CURLOPT_SSL_VERIFYHOST:

  • 1: Überprüfen der Existenz eines allgemeinen Namens im SSL-Peer-Zertifikat.
  • 2: um die Existenz eines allgemeinen Namens zu überprüfen und zu überprüfen, ob er mit dem angegebenen Hostnamen übereinstimmt.

CURLOPT_SSL_VERIFYPEER: FALSE, um zu verhindern, dass CURL das Zertifikat des Peers überprüft. Alternative Zertifikate, gegen die verifiziert werden kann, können mit der Option CURLOPT_CAINFO angegeben werden oder ein Zertifikatverzeichnis kann mit der Option CURLOPT_CAPATH angegeben werden. CURLOPT_SSL_VERIFYHOST muss möglicherweise ebenfalls TRUE oder FALSE sein, wenn CURLOPT_SSL_VERIFYPEER deaktiviert ist (Standardeinstellung ist 2).

So aktivieren Sie & amp; Überprüfen Sie richtig:

Um korrekt zu überprüfen, müssen wir überprüfen, ob das uns vorgelegte Zertifikat echt ist. Wir tun dies, indem wir es mit einem Zertifikat vergleichen, dem wir vertrauen *.

Wenn die Remote-Ressource durch ein Zertifikat geschützt ist, das von einer der Haupt-CAs wie Verisign, GeoTrust und anderen ausgestellt wurde, können Sie sicher mit Mozillas CA-Zertifikatsbündel vergleichen, das Sie von Ссылка

Speichern Sie die Datei cacert.pem irgendwo auf Ihrem Server und legen Sie die folgenden Optionen in Ihrem Skript fest.

%Vor%

Wenn Sie eine Verbindung zu einer Ressource herstellen, die durch ein selbstsigniertes Zertifikat geschützt ist, müssen Sie lediglich eine Kopie des Zertifikats im PEM-Format anfordern und an die Datei cacert.pem des obigen Absatzes anhängen.

    
shamittomar 04.09.2010, 15:03
quelle
2

In meinem Fall konnte ich curl_setopt nicht verwenden, weil ich die Facebook-API-Klassen (Bedingungen des Projekts, in dem ich gearbeitet habe) nicht bearbeiten konnte.

Ich habe das Problem gelöst, indem ich cacert.pem einen Pfad hinzugefügt habe, der von Ссылка in meine php.ini heruntergeladen wurde

%Vor%     
malloc4k 28.11.2012 09:30
quelle
0

Ich hatte gerade das gleiche Problem und die Deaktivierung der Peer-Verifizierung ist in meinem Fall nicht akzeptabel. Ich habe die Datei fa_ca_chain_bundle.crt aktualisiert (aus facebooks gitbub ) und es funktioniert jetzt.

Grüße, Marek

    
Marek Roj 17.04.2013 08:39
quelle

Tags und Links