Masalah kegagalan sambungan HTTPS dan penyelesaiannya
Apabila menggunakan cURL untuk menyambung ke tapak web HTTPS, saya menghadapi masalah biasa: cURL only Returns Kandungan 0-panjang, hanya sah jika cURL ditetapkan untuk mengembalikan pengepala. Isu ini berkemungkinan besar disebabkan oleh sambungan HTTPS.
Penyelesaian untuk isu ini ialah mengemas kini versi fail pengesahan yang disertakan dengan cURL untuk mengesahkan sijil HTTPS. Fail pengesahan terkini boleh dimuat turun dari http://curl.haxx.se/ca/cacert.pem. Simpannya pada direktori di tapak web anda dan tambahkan dalam setiap permintaan:
curl_setopt ($curl_ch, CURLOPT_CAINFO, dirname(__FILE__)."/cacert.pem");
Adalah penting untuk ambil perhatian bahawa dalam penyelesaian jangan lumpuhkan CURLOPT_VERIFYPEER dan CURLOPT_VERIFYHOST, Kerana ini akan mengurangkan keselamatan kod.
Penyelesaian yang lebih baik ialah menggunakan kaedah yang dicadangkan oleh Jasen seperti berikut:
Dalam php.ini tambah:
curl.cainfo=/etc/ssl/certs/ca-certificates.crt
Selain itu, anda boleh Gunakan pakej komposer Paragonie /Kepastian untuk mengurus sijil CA untuk mengelakkan kelemahan keselamatan yang disebabkan oleh tamat tempoh cacert.pem akibat pembatalan sijil.
Atas ialah kandungan terperinci Mengapa Sambungan HTTPS cURL Saya Mengembalikan Kandungan Kosong, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!