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

DDD
Lepaskan: 2024-10-23 12:22:36
asal
804 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!