HTTPS-Verbindungsfehlerproblem und seine Lösung
Bei der Verwendung von cURL zum Herstellen einer Verbindung zu einer HTTPS-Website bin ich auf ein häufiges Problem gestoßen: Nur cURL wird zurückgegeben Inhalt mit der Länge 0, nur gültig, wenn cURL so eingestellt ist, dass Header zurückgegeben werden. Dieses Problem wird höchstwahrscheinlich durch HTTPS-Verbindungen verursacht.
Die Problemumgehung für dieses Problem besteht darin, die Version der Authentifizierungsdatei zu aktualisieren, die mit cURL zur Validierung von HTTPS-Zertifikaten geliefert wird. Die neuesten Authentifizierungsdateien können unter http://curl.haxx.se/ca/cacert.pem heruntergeladen werden. Speichern Sie es in einem Verzeichnis auf Ihrer Website und fügen Sie bei jeder Anfrage Folgendes hinzu:
curl_setopt ($curl_ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
Es ist wichtig zu beachten, dass Sie in der Lösung CURLOPT_VERIFYPEER und CURLOPT_VERIFYHOST nicht deaktivieren, da dies zu einer Reduzierung führt Sicherheit des Codes.
Eine bessere Lösung besteht darin, die von Jasen vorgeschlagene Methode wie folgt zu verwenden:
In php.ini hinzufügen:
curl.cainfo=/etc/ssl/certs/ca-certificates.crt
Außerdem können Sie das Composer-Paket Paragonie verwenden /Certainty zur Verwaltung von CA-Zertifikaten, um Sicherheitslücken zu vermeiden, die durch den Ablauf von cacert.pem aufgrund eines Zertifikatswiderrufs verursacht werden.
Das obige ist der detaillierte Inhalt vonWarum gibt meine cURL-HTTPS-Verbindung leeren Inhalt zurück und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!