Fehler: „Irgendwo im SSL/TLS-Handshake ist ein Problem aufgetreten“ bei Verwendung von cURL
Im Bereich von cURL können Benutzer auf ein Problem stoßen Rätselhafte Fehlermeldung: „Irgendwo beim SSL/TLS-Handshake ist ein Problem aufgetreten.“ Dieses verwirrende Problem entsteht, wenn cURL auf Schwierigkeiten beim Aufbau einer sicheren Verbindung über HTTPS stößt.
Das Problem
Der bereitgestellte Kontext offenbart das Dilemma eines Entwicklers, in dem cURL HTTP-Anfragen einwandfrei verarbeitet, aber ins Stocken gerät wenn auf HTTPS gestoßen wird, auch wenn auf dieselbe Ressource mit unterschiedlichen Protokollen abgezielt wird. Die Fehlerantwort von cURL, Code 35, weist auf ein Problem im SSL/TLS-Handshake hin.
Fehlgeschlagene Versuche
Der Entwickler hat sorgfältig mögliche Lösungen untersucht, einschließlich der Deaktivierung der SSL-Zertifikatsüberprüfung (CURLOPT_SSL_VERIFYPEER) und der Versuch, ein Zertifikat einer Zertifizierungsstelle (CA) herunterzuladen und zu konfigurieren (CURLOPT_CAINFO). Diese Bemühungen erwiesen sich jedoch als erfolglos.
Die Lösung
Nach eingehender Untersuchung des Problems stellt unser Experte fest, dass cURL über keine integrierten Stammzertifikate verfügt. Um dies zu beheben, muss der Entwickler cURL explizit an eine vertrauenswürdige CA-Zertifikatdatei (cacert.pem) weiterleiten. Durch Angabe des Pfads zu dieser Datei mithilfe von CURLOPT_CAINFO kann cURL die Authentizität des vom Remote-Server bereitgestellten SSL-Zertifikats überprüfen.
Die Datei cacert.pem kann von einer seriösen Quelle bezogen werden, beispielsweise aus der offiziellen cURL-Dokumentation (http://curl.haxx.se/docs/caextract.html). Durch die Einbindung dieses Zertifikats kann cURL eine sichere Verbindung herstellen und die angeforderte HTTPS-Ressource abrufen.
Das obige ist der detaillierte Inhalt vonWarum gibt cURL bei der Verwendung von HTTPS den Fehler „Irgendwo beim SSL/TLS-Handshake ist ein Problem aufgetreten' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!