Bagaimana untuk Menyelesaikan Ralat Tamat Masa SSL dan Crypto Enable dalam PHP untuk file_get_contents()?

Linda Hamilton
Lepaskan: 2024-10-23 11:52:30
asal
958 orang telah melayarinya

How to Resolve SSL Timeout and Crypto Enabling Errors in PHP for file_get_contents()?

SSL Timeout dan Ralat Pembolehan Kripto Selesai untuk file_get_contents()

Dalam PHP, apabila menggunakan file_get_contents() untuk mendapatkan semula kandungan daripada halaman HTTPS, adalah mungkin untuk menghadapi ralat yang berkaitan dengan pendayaan kripto SSL. Satu ralat sedemikian ialah:

Warning: file_get_contents(): SSL: crypto enabling timeout...
Warning: file_get_contents(): Failed to enable crypto...
Salin selepas log masuk

Isu ini timbul apabila konfigurasi PHP tidak mempunyai tetapan yang diperlukan untuk mendayakan kripto untuk sambungan SSL. Untuk membetulkannya, penyelesaian berikut dicadangkan:

Menggunakan cURL dengan SSLv3

Daripada file_get_contents(), perpustakaan cURL boleh digunakan, yang memberikan kawalan yang lebih besar terhadap Tetapan SSL. Dengan menetapkan pilihan CURLOPT_SSLVERSION kepada 3, SSLv3 akan didayakan, berpotensi menyelesaikan isu:

<code class="php"><?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

Mengkonfigurasi cURL untuk Pengesahan SSL

Dalam kes tertentu, isu mungkin juga berpunca daripada sijil akar yang hilang atau tidak lengkap. Untuk memastikan pengesahan SSL yang betul, langkah berikut disyorkan:

  1. Muat turun sijil akar.
  2. Tentukan laluan ke fail sijil menggunakan CURLOPT_CAINFO:
<code class="php">curl_setopt($ch, CURLOPT_CAINFO, __DIR__ . "/certs/cacert.pem");</code>
Salin selepas log masuk
  1. Dayakan pengesahan SSL menggunakan CURLOPT_SSL_VERIFYPEER:
<code class="php">curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);</code>
Salin selepas log masuk

Dengan melaksanakan penyelesaian ini, anda boleh menyelesaikan tamat masa SSL dan ralat pendayaan crypto yang dikaitkan dengan file_get_contents() dalam PHP, membolehkan anda untuk mendapatkan semula kandungan daripada halaman HTTPS tanpa komplikasi lanjut.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Tamat Masa SSL dan Crypto Enable dalam PHP untuk file_get_contents()?. 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
Artikel terbaru oleh pengarang
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!