Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa My Curl POST ke URL HTTPS Gagal dengan Ralat SSLRead() pada OSX 10.10?

Mengapa My Curl POST ke URL HTTPS Gagal dengan Ralat SSLRead() pada OSX 10.10?

Susan Sarandon
Susan Sarandonasal
2024-11-02 22:57:301002semak imbas

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

OSX 10.10 Curl POST to HTTPS URL Mengembalikan Ralat SSLRead()

Isu ini timbul apabila PHP disusun dengan versi cURL yang menggunakan Apple's Pengangkutan Selamat di Yosemite, dan URL HTTPS sasaran tidak mempunyai sokongan SSLv3—langkah yang diambil disebabkan oleh kerentanan PODLE.

Untuk mengesahkan sama ada ini memang puncanya, laksanakan arahan berikut:

$ php -i | grep "SSL Version"

Anda berkemungkinan menghadapi output berikut:

SSL Version => SecureTransport

Untuk menyelesaikan isu ini, pasang versi PHP yang menggunakan versi cURL yang memanfaatkan OpenSSL dan bukannya SecureTransport. Anda boleh melakukannya dengan lancar menggunakan Homebrew.

  1. Pasang Homebrew jika belum ada. Kemas kini dan pastikan anda mempunyai XCode 6.1 atau lebih baru dengan alat baris arahan XCode terkini.
  2. Ketik repositori Homebrew:

    • $ brew tap homebrew/dupes
    • $ brew tap homebrew/versions
    • $ brew tap homebrew/php
  3. Pasang curl dengan OpenSSL:

    • $ brew install --with-openssl curl
  4. Pasang PHP menggunakan openssl curl yang baru dipasang:

    • $ brew install --with-homebrew-curl --with-httpd24 php55
    • Ganti httpd24 dengan versi Apache anda jika berkenaan.
  5. Konfigurasikan untuk Apache/Nginx:

    • Apache: Tambah LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so ke httpd.conf anda dan mulakan semula Apache.
    • Nginx (Kaveat):

      • Mulakan 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. Pasang sambungan PHP yang diperlukan, mis., $ brew pasang php55-mcrypt.
  7. Jalankan semula php -i | grep arahan "SSL Version" untuk mengesahkan perubahan:

    • SSL Version => OpenSSL/1.0.2j

Setelah melaksanakan langkah-langkah ini, ralat SSLRead() seharusnya tidak berterusan.

Atas ialah kandungan terperinci Mengapa My Curl POST ke URL HTTPS Gagal dengan Ralat SSLRead() pada OSX 10.10?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn