ホームページ >バックエンド開発 >PHPチュートリアル >OSX 10.10 で Curl の HTTPS URL への POST が SSLRead() エラーで失敗するのはなぜですか?

OSX 10.10 で Curl の HTTPS URL への POST が SSLRead() エラーで失敗するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 22:57:301058ブラウズ

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

OSX 10.10 Curl POST to HTTPS URL Returns SSLRead() Error

この問題は、PHP が Apple の cURL バージョンでコンパイルされている場合に発生します。 Yosemite のセキュア トランスポート、およびターゲット HTTPS URL に SSLv3 サポートがありません。これは、POODLE の脆弱性のために講じられた措置です。

これが本当に原因であるかどうかを確認するには、次のコマンドを実行します。

$ php -i | grep "SSL Version"

次の出力が表示される可能性があります:

SSL Version => SecureTransport

問題を解決するには、SecureTransport ではなく OpenSSL を利用する cURL バージョンを採用する PHP バージョンをインストールします。 Homebrew を使用すると、これをシームレスに実行できます。

  1. Homebrew がまだ存在していない場合は、インストールします。更新し、XCode 6.1 以降と最新の XCode コマンド ライン ツールがインストールされていることを確認します。
  2. Homebrew リポジトリをタップします:

    • $ brew Tap homebrew/dupes
    • $ brew Tap homebrew/versions
    • $ brew Tap homebrew/php
  3. OpenSSL でカールをインストール:

    • $ brew install --with-opensslカール
  4. 新しくインストールしたopensslカールを使用してPHPをインストールします :

    • $ brew install --with-homebrew-curl --with-httpd24 php55
    • 該当する場合、httpd24 を Apache のバージョンに置き換えます。
  5. Apache/Nginx 用の設定:

    • Apache: LoadModule の追加 php5_module /usr/local/opt/php55/libexec/apache2 /libphp5.so を httpd.conf に追加し、Apache を再起動します。
    • Nginx (警告):

      • Start 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. 必要な PHP 拡張機能をインストールします、例: $ brew install php55-mcrypt.
  7. php -i | を再実行します。 grep "SSL Version" コマンドを使用して変更を確認します。

    • SSL Version => OpenSSL/1.0.2h

これらの手順を実行すると、SSLRead() エラーは持続しなくなります。

以上がOSX 10.10 で Curl の HTTPS URL への POST が SSLRead() エラーで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。