تحذير OPENSL: "فشل تمكين التشفير" لعنوان URL محدد لـ HTTPS
تنشأ هذه المشكلة عند محاولة الوصول إلى عناوين URL محددة لـ HTTPS باستخدام file_get_contents () على الرغم من تمكين ملحق opensl. تقوم الدالة بإرجاع رسالة الخطأ: "تحذير: فشل تمكين التشفير"، مما يشير إلى أنه لا يمكن تنفيذ عمليات التشفير الضرورية.يكمن السبب الجذري لهذه المشكلة في بروتوكول الأمان الذي يستخدمه موقع الويب الذي به مشكلات. في هذه الحالة، يستخدم موقع الويب SSLv3، وهو بروتوكول قديم وضعيف. التكوين الافتراضي لـ openssl لا يدعم SSLv3 افتراضيًا لأسباب أمنية.
لحل هذه المشكلة واسترداد المحتوى من موقع الويب بنجاح، من الضروري إيجاد حل بديل. أحد الخيارات هو استخدام الدالة curl_setopt() لتحديد إصدار SSL الذي سيتم استخدامه يدويًا. يمكن تحقيق ذلك عن طريق تعيين خيار CURLOPT_SSLVERSION على 3، والذي يتوافق مع SSLv3.
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"));
هناك مشكلة محتملة أخرى قد تنشأ في نظام التشغيل Windows وهي عدم الوصول إلى شهادات الجذر. لمعالجة هذه المشكلة، يوصى بتنزيل الشهادات الجذرية وتحديد موقعها يدويًا باستخدام خيارات CURLOPT_CAINFO وCURLOPT_SSL_VERIFYPEER.curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
من خلال تنفيذ هذه الحلول، يصبح من الممكن الوصول إلى المحتوى واسترداده بنجاح من موقع الويب الذي به مشكلات باستخدام opensl. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3