Aus irgendeinem Grund kann ich CURL nicht mit HTTPS verwenden. Alles funktionierte einwandfrei, bis ich ein Upgrade der Curl-Bibliotheken durchführte. Jetzt tritt diese Antwort auf, wenn ich versuche, CURL-Anforderungen auszuführen: Problem mit dem SSL-CA-Zertifikat (Pfad? Zugriffsrechte?)
Nach den hier veröffentlichten Vorschlägen zu verwandten Themen habe ich Folgendes versucht:
Deaktivieren Sie die Überprüfung für Host und Peer
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true);
Aktivieren
CURLOPT_SSL_VERIFYPEER
und zeigen Sie auf cacert.pem heruntergeladen von http://curl.haxx.se/docs/caextract.htmlcurl_setopt($cHandler, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($cHandler, CURLOPT_CAINFO, getcwd() . "/positiveSSL.ca-bundle");
Ich habe auch versucht, dasselbe mit dem positivenSSL.ca-Bundle zu tun, das als Bundle-CA-Zertifikat für den Server bereitgestellt wurde, zu dem ich eine Verbindung herstellen möchte.
Bearbeiten Sie die PHP-INI-Einstellungen mit
curl.cainfo=cacert.pem
(Datei im selben Verzeichnis und für Apache zugänglich)Umbenennen
/etc/pki/nssdb
in/etc/pki/nssdb.old
Leider kann keines der oben genannten Probleme mein Problem lösen, und ich erhalte ständig ein Problem mit der SSL-CA-Zertifizierungsnachricht (Pfad? Zugriffsrechte?).
Und ich brauche diese Überprüfung überhaupt nicht (mir sind Sicherheitsprobleme bekannt).
Hat jemand andere Vorschläge?
AKTUALISIEREN
Nach dem Update auf die neuesten Bibliotheken und dem Neustart der gesamten Box scheint nicht nur Apache, was ich getan habe, jetzt wieder zu funktionieren !!!
Antworten:
Gemäß Dokumentation: Um das Host- oder Peer-Zertifikat zu überprüfen, müssen Sie alternative Zertifikate mit der
CURLOPT_CAINFO
Option angeben, oder es kann ein Zertifikatverzeichnis mit derCURLOPT_CAPATH
Option angegeben werden.Schauen Sie sich auch an
CURLOPT_SSL_VERIFYHOST:
quelle
SSL verification disabled
)Wir hatten das gleiche Problem auf einem CentOS7-Computer. Durch Deaktivieren von wurde das
VERIFYHOST
VERIFYPEER
Problem nicht gelöst. Wir hatten keinen cURL-Fehler mehr, aber die Antwort war immer noch ungültig. Das Ausführen eineswget
Links zu demselben Link wie die cURL führte ebenfalls zu einem Zertifikatfehler.-> Unsere Lösung bestand auch darin, den VPS neu zu starten. Dies löste ihn und wir konnten die Anforderung erneut abschließen.
Für uns schien dies ein Problem der Speicherbeschädigung zu sein. Durch einen Neustart des VPS wurde die Bibliothek erneut in den Speicher geladen und jetzt funktioniert es. Wenn die obige Lösung von
@clover
nicht funktioniert, versuchen Sie, Ihren Computer neu zu starten.quelle