Maison >développement back-end >tutoriel php >Pourquoi mon URL Curl POST vers HTTPS échoue-t-elle avec l'erreur SSLRead() sur OSX 10.10 ?

Pourquoi mon URL Curl POST vers HTTPS échoue-t-elle avec l'erreur SSLRead() sur OSX 10.10 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 22:57:301058parcourir

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

OSX 10.10 Curl POST vers HTTPS URL renvoie l'erreur SSLRead()

Ce problème survient lorsque PHP est compilé avec une version cURL qui utilise Apple Secure Transport dans Yosemite et l'URL HTTPS cible ne prend pas en charge SSLv3, une mesure prise en raison de la vulnérabilité POODLE.

Pour vérifier si c'est bien la cause, exécutez la commande suivante :

$ php -i | grep "SSL Version"

Vous êtes susceptible de rencontrer le résultat suivant :

SSL Version => SecureTransport

Pour résoudre le problème, installez une version PHP qui utilise une version cURL exploitant OpenSSL plutôt que SecureTransport. Vous pouvez accomplir cela de manière transparente en utilisant Homebrew.

  1. Installez Homebrew s'il n'est pas déjà présent. Mettez-le à jour et assurez-vous que vous disposez de XCode 6.1 ou version ultérieure avec les derniers outils de ligne de commande XCode.
  2. Appuyez sur les référentiels Homebrew :

    • $ Brew Tap homebrew/dupes
    • $brew tap homebrew/versions
    • $brew tap homebrew/php
  3. Installer curl avec OpenSSL :

    • $ Brew Install --with-openssl curl
  4. Installez PHP à l'aide du curl openssl nouvellement installé :

    • $ Brew Install --with-homebrew-curl --with-httpd24 php55
    • Remplacez httpd24 par votre version d'Apache le cas échéant.
  5. Configurer pour Apache/Nginx :

    • Apache : Ajouter LoadModule php5_module /usr/local/opt/php55/libexec/apache2 /libphp5.so sur votre httpd.conf et redémarrez Apache.
    • Nginx (Mise en garde) :

      • Démarrez fpm :

        • mkdir -p ~/Bibliothèque/LaunchAgents
        • cp /usr/local/opt/php55/homebrew.mxcl.php55.plist ~/Bibliothèque/LaunchAgents/
        • launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.php55.plist
  6. Installer les extensions PHP nécessaires, par exemple, $brew install php55-mcrypt.
  7. Réexécutez le php -i | grep "SSL Version" pour confirmer le changement :

    • SSL Version => OpenSSL/1.0.2h

Lors de l'exécution de ces étapes, l'erreur SSLRead() ne devrait plus persister.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn