Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyelesaikan Permulaan Kripto yang Gagal untuk file_get_contents() Menggunakan OpenSSL?

Bagaimana untuk Menyelesaikan Permulaan Kripto yang Gagal untuk file_get_contents() Menggunakan OpenSSL?

DDD
DDDasal
2024-10-23 12:22:36806semak imbas

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

Menyelesaikan Masalah Gagal Permulaan Kripto untuk file_get_contents() dengan OPENSSL

Apabila menghadapi ralat "Gagal mendayakan kripto" semasa menggunakan file_get_contents() dengan OPENSSL, adalah penting untuk menyiasat isu asas.

Mengenalpasti Punca Punca

Log ralat yang disediakan mencadangkan tamat masa semasa pemulaan kripto. Walau bagaimanapun, masalahnya mungkin terletak di tempat lain. Satu sebab yang mungkin ialah tapak web menggunakan versi SSL yang tidak disokong, seperti SSLv3.

Penyelesaian Menggunakan cURL

Untuk memintas pengehadan file_get_contents() dan mendayakan sokongan SSLv3 , adalah disyorkan untuk menggunakan cURL sebaliknya:

<code class="php">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"));</code>

Penyelesaian ini secara eksplisit menetapkan versi SSL kepada v3, membenarkan curl mengendalikan jabat tangan SSL dengan jayanya.

Pertimbangan Tambahan untuk Pengguna Windows

Untuk pengguna Windows, mungkin juga perlu untuk menentukan lokasi sijil akar untuk curl. Ini boleh dicapai dengan:

<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);</code>

Dengan menetapkan pilihan CURLOPT_SSL_VERIFYPEER kepada benar, curl akan mengesahkan sijil rakan sebaya terhadap sijil akar yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Permulaan Kripto yang Gagal untuk file_get_contents() Menggunakan OpenSSL?. 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