Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Betulkan 'Operasi SSL gagal dengan kod 1' Ralat Semasa Menggunakan `file_get_contents()` dalam PHP?

Bagaimana untuk Betulkan 'Operasi SSL gagal dengan kod 1' Ralat Semasa Menggunakan `file_get_contents()` dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-12-25 10:31:17631semak imbas

How to Fix

Menyelesaikan Masalah SSL dengan file_get_contents()

Dalam PHP 5.6, perubahan telah diperkenalkan kepada pengendalian OpenSSL yang kadangkala membawa kepada ralat seperti "SSL operasi gagal dengan kod 1." Satu contoh sedemikian, seperti yang dilaporkan oleh pengguna, berlaku apabila cuba mengakses perkhidmatan REST menggunakan file_get_contents().

Penerangan Masalah:

Pengguna mengalami ralat semasa cuba mendapatkan semula data daripada perkhidmatan REST melalui file_get_contents():

$response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json");

Mesej ralat dipaparkan:

Warning: file_get_contents(): SSL operation failed with code 1.
OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Penyelesaian:

Untuk menyelesaikan isu ini, pengguna melaksanakan langkah berikut:

  1. Merujuk PHP 5.6 Dokumentasi migrasi OpenSSL di http://php.net/manual/en/migration56.openssl.php.
  2. Ketahui tentang parameter tambahan "verify_peer_name" yang perlu ditetapkan kepada false.
  3. Melaraskan kod PHP mereka untuk memasukkan parameter yang dikemas kini:
$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);

$response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json", false, stream_context_create($arrContextOptions));

Penting Nota:

Pengguna mengakui implikasi keselamatan melumpuhkan pengesahan SSL. Ini hanya perlu dilakukan jika pengguna memahami sepenuhnya risiko dan tidak mempunyai pilihan konfigurasi lain yang berdaya maju. Untuk keselamatan optimum, dayakan pengesahan sijil SSL secara lalai.

Atas ialah kandungan terperinci Bagaimana untuk Betulkan 'Operasi SSL gagal dengan kod 1' Ralat Semasa Menggunakan `file_get_contents()` dalam PHP?. 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