Heim >Backend-Entwicklung >PHP-Tutorial >Warum schlägt mein Curl-POST an die HTTPS-URL mit dem SSLRead()-Fehler unter OSX 10.10 fehl?

Warum schlägt mein Curl-POST an die HTTPS-URL mit dem SSLRead()-Fehler unter OSX 10.10 fehl?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 22:57:301054Durchsuche

Why Does My Curl POST to HTTPS URL Fail with SSLRead() Error on OSX 10.10?

OSX 10.10 Curl POST to HTTPS URL Gibt SSLRead()-Fehler zurück

Dieses Problem tritt auf, wenn PHP mit einer cURL-Version kompiliert wird, die Apples verwendet Sicherer Transport in Yosemite, und der Ziel-HTTPS-URL fehlt SSLv3-Unterstützung – eine Maßnahme, die aufgrund der POODLE-Schwachstelle ergriffen wurde.

Um zu überprüfen, ob dies tatsächlich die Ursache ist, führen Sie den folgenden Befehl aus:

$ php -i | grep "SSL Version"

Sie werden wahrscheinlich auf die folgende Ausgabe stoßen:

SSL Version => SecureTransport

Um das Problem zu beheben, installieren Sie eine PHP-Version, die eine cURL-Version verwendet, die OpenSSL anstelle von SecureTransport nutzt. Sie können dies problemlos mit Homebrew erreichen.

  1. Installieren Sie Homebrew, falls noch nicht vorhanden. Aktualisieren Sie es und stellen Sie sicher, dass Sie XCode 6.1 oder höher mit den neuesten XCode-Befehlszeilentools haben.
  2. Tippen Sie auf die Homebrew-Repositorys:

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

    • $ brew install --with-openssl curl
  4. Installieren Sie PHP mit dem neu installierten openSL-curl :

    • $ brew install --with-homebrew-curl --with-httpd24 php55
    • Ersetzen Sie ggf. httpd24 durch Ihre Apache-Version.
  5. Für Apache/Nginx konfigurieren:

    • Apache: LoadModule php5_module /usr/local/opt/php55/libexec/apache2 anhängen /libphp5.so zu Ihrer httpd.conf und starten Sie Apache neu.
    • Nginx (Vorbehalt):

      • Starte fpm:

        • mkdir -p ~/Library/LaunchAgents
        • cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Library/LaunchAgents/
        • launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
  6. Notwendige PHP-Erweiterungen installieren, z. B. $ brew install php55-mcrypt.
  7. Führen Sie php -i | erneut aus grep „SSL Version“-Befehl zum Bestätigen der Änderung:

    • SSL Version => OpenSSL/1.0.2h

Beim Ausführen dieser Schritte sollte der SSLRead()-Fehler nicht mehr bestehen bleiben.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein Curl-POST an die HTTPS-URL mit dem SSLRead()-Fehler unter OSX 10.10 fehl?. 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