OPENSSL के साथ file_get_contents() का उपयोग करते समय "क्रिप्टो को सक्षम करने में विफल" त्रुटि का सामना करते समय, इसकी जांच करना महत्वपूर्ण है अंतर्निहित समस्या।
मूल कारण की पहचान करना
प्रदान किया गया त्रुटि लॉग क्रिप्टो आरंभीकरण के दौरान एक टाइमआउट का सुझाव देता है। हालाँकि, समस्या कहीं और भी हो सकती है। एक संभावित कारण यह है कि वेबसाइट एक असमर्थित SSL संस्करण का उपयोग करती है, जैसे SSLv3। , इसके बजाय cURL का उपयोग करने की अनुशंसा की जाती है:
function getSSLPage($url) { $ch = कर्ल_इनिट(); कर्ल_सेटोप्ट($ch, CURLOPT_HEADER, गलत); कर्ल_सेटोप्ट($ch, CURLOPT_URL, $url); कर्ल_सेटॉप्ट($ch, CURLOPT_SSLVERSION, 3); $परिणाम = कर्ल_एक्सईसी($ch); कर्ल_क्लोज़($ch); वापसी $परिणाम; } var_dump(getSSLPage("https://eresearch.fidelity.com/eresearch/evaluate/analystsOpinionsReport.jhtml?symbols=api"));
यह समाधान स्पष्ट रूप से SSL संस्करण को v3 पर सेट करता है, जिससे कर्ल को संभालने की अनुमति मिलती है एसएसएल हैंडशेक सफलतापूर्वक।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"));
विंडोज उपयोगकर्ताओं के लिए, कर्ल के लिए रूट प्रमाणपत्र का स्थान निर्दिष्ट करना भी आवश्यक हो सकता है। इसे इसके द्वारा प्राप्त किया जा सकता है:
curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
CURLOPT_SSL_VERIFYPEER विकल्प को सही पर सेट करके, कर्ल निर्दिष्ट रूट प्रमाणपत्रों के विरुद्ध सहकर्मी के प्रमाणपत्र को सत्यापित करेगा।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3