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?

Wie behebt man den „SSLRead()-Rückgabefehler -9806“, wenn Curl-POST-Anfragen an HTTPS-URLs unter OSX 10.10 gestellt werden?

Susan Sarandon
Susan SarandonOriginal
2024-10-31 08:28:02352Durchsuche

How to Solve

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:

  1. Tippen Sie auf die Homebrew-Taps:

    $ brew tap homebrew/dupes
    $ brew tap homebrew/versions
    $ brew tap homebrew/php
  2. Installieren Sie Curl mit OpenSSL:

    $ brew install --with-openssl curl
  3. Installieren Sie PHP mit dem neu installierten Curl und OpenSSL:

    $ brew install --with-homebrew-curl --with-httpd24 php55
  4. Konfigurieren Sie PHP für Apache oder Nginx.
  5. Installieren Sie alle PHP-Erweiterungen, die Sie benötigen erforderlich.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn