Heim > Artikel > Backend-Entwicklung > Wie behebt man den „SSLRead()-Rückgabefehler -9806“, wenn Curl-POST-Anfragen an HTTPS-URLs unter OSX 10.10 gestellt werden?
OSX 10.10 Curl POST to HTTPS URL: Fehlerbehebung beim SSLRead()-Fehler
Nach dem Upgrade auf OSX 10.10 Yosemite ist bei Benutzern ein Fehler aufgetreten Durchführen von Curl-POST-Anfragen an SSL-URLs. Die Fehlermeldung „Fehlernummer:56, Fehlerzeichenfolge:SSLRead() gibt Fehler -9806 zurück“ weist auf ein Problem mit der SSL-Verbindung hin.
Bei der Untersuchung wurde festgestellt, dass dieser Fehler mit der Version von zusammenhängt cURL, die mit PHP unter Yosemite kompiliert wird. Standardmäßig verwendet PHP SecureTransport von cURL, wodurch es zu Problemen mit Websites kommen kann, die SSLv3 aufgrund der POODLE-Schwachstelle deaktiviert haben.
Um dieses Problem zu beheben, müssen Sie eine PHP-Version installieren, die OpenSSL anstelle von SecureTransport verwendet für cURL. Dies kann über Homebrew erfolgen, einen Paketmanager für macOS. Führen Sie nach der Installation von Homebrew die folgenden Schritte aus:
Tippen Sie auf die Homebrew-Taps:
$ brew tap homebrew/dupes $ brew tap homebrew/versions $ brew tap homebrew/php
Installieren Sie Curl mit OpenSSL:
$ brew install --with-openssl curl
Installieren Sie PHP mit dem neu installierten Curl und OpenSSL:
$ brew install --with-homebrew-curl --with-httpd24 php55
Sobald Sie diese Schritte abgeschlossen haben, führen Sie den folgenden Befehl aus:
$ php -i | grep "SSL Version"
Sie sollten jetzt sehen:
SSL Version => OpenSSL/1.0.2h
Mit OpenSSL verwendet Für cURL sollte der SSLRead()-Fehler nicht mehr auftreten, wenn Sie Curl-POST-Anfragen an HTTPS-URLs versuchen.
Das obige ist der detaillierte Inhalt vonWie behebt man den „SSLRead()-Rückgabefehler -9806“, wenn Curl-POST-Anfragen an HTTPS-URLs unter OSX 10.10 gestellt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!