"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية حل مشكلة تهيئة التشفير الفاشلة لـ file_get_contents() باستخدام OpenSSL؟

كيفية حل مشكلة تهيئة التشفير الفاشلة لـ file_get_contents() باستخدام OpenSSL؟

تم النشر بتاريخ 2024-11-01
تصفح:676

How to Resolve Failed Crypto Initialization for file_get_contents() Using OpenSSL?

استكشاف أخطاء فشل تهيئة التشفير وإصلاحها لـ file_get_contents() مع OPENSSL

عند مواجهة الخطأ "فشل تمكين التشفير" أثناء استخدام file_get_contents() مع OPENSSL، من الضروري التحقيق في الأمر المشكلة الأساسية.

تحديد السبب الجذري

يقترح سجل الأخطاء المقدم انتهاء المهلة أثناء تهيئة التشفير. ومع ذلك، قد تكمن المشكلة في مكان آخر. أحد الأسباب المحتملة هو أن موقع الويب يستخدم إصدار SSL غير مدعوم، مثل SSLv3.

الحل باستخدام cURL

لتجاوز قيود file_get_contents() وتمكين دعم SSLv3 ، فمن المستحسن استخدام cURL بدلاً من ذلك:

function getSSLPage($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSLVERSION, 3); 
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

var_dump(getSSLPage("https://eresearch.fidelity.com/eresearch/evaluate/analystsOpinionsReport.jhtml?symbols=api"));

يقوم هذا الحل بشكل صريح بتعيين إصدار SSL على الإصدار v3، مما يسمح لـ Curl بالتعامل معه تمت مصافحة SSL بنجاح.

اعتبارات إضافية لمستخدمي Windows

بالنسبة لمستخدمي Windows، قد يكون من الضروري أيضًا تحديد موقع الشهادات الجذرية للضفيرة. يمكن تحقيق ذلك عن طريق:

curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

من خلال تعيين خيار CURLOPT_SSL_VERIFYPEER على true، سوف يتحقق curl من شهادة النظير مقابل الشهادات الجذرية المحددة.

بيان الافراج أعيد طبع هذه المقالة على: 1729647016 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3