Cara menyelesaikan masalah yang PHP tidak dapat memperoleh data seperti biasa selepas IIS memasang sijil SSL diperlukan contoh kod khusus
Dengan peningkatan kesedaran keselamatan Internet, semakin banyak laman web telah mula menggunakan sijil SSL untuk menyulitkan data. penghantaran dan melindungi privasi pengguna dan keselamatan maklumat. Pada platform Windows, salah satu pelayan web yang biasa digunakan ialah IIS (Internet Information Services). Walau bagaimanapun, selepas memasang sijil SSL, sesetengah pembangun mendapati bahawa PHP tidak dapat memperoleh data secara normal dan mungkin menghadapi beberapa masalah. Artikel ini menerangkan cara menyelesaikan masalah ini dan menyediakan contoh kod khusus.
Pertama, pastikan sijil SSL dikonfigurasikan dengan betul pada IIS. Ini termasuk memasang sijil pada pelayan, mengkonfigurasi maklumat yang mengikat, memastikan rantaian sijil lengkap, dsb. Jika sijil SSL dikonfigurasikan secara tidak betul, ia boleh menyebabkan PHP mengalami ralat semasa berkomunikasi dengan pelayan.
Buka fail konfigurasi PHP php.ini, cari baris konfigurasi berikut dan pastikan ia dikonfigurasikan dengan betul:
;extension=php_openssl.dll ;extension=php_curl.dll
Alih keluar koma bertitik dan pastikan kedua-dua modul sambungan ini didayakan. Kedua-dua modul ini bertanggungjawab untuk mengendalikan sambungan SSL dan permintaan HTTPS dalam PHP dan mesti dipastikan berfungsi dengan baik.
Apabila menggunakan permintaan HTTPS dalam PHP, pastikan anda menggunakan laluan permintaan HTTPS yang betul, iaitu URL yang bermula dengan https://. Jika tidak, PHP mungkin tidak mengenali dengan betul bahawa permintaan itu adalah untuk sambungan selamat.
Berikut ialah contoh kod ringkas yang menggunakan perpustakaan cURL untuk menghantar permintaan HTTPS:
<?php $url = "https://example.com/api/data"; // 替换成实际的HTTPS接口地址 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); if(curl_errno($ch)){ echo 'Curl error: ' . curl_error($ch); } curl_close($ch); echo $result; ?>
Kod ini menghantar permintaan ke antara muka HTTPS yang ditentukan melalui perpustakaan cURL dan mendapatkan data yang dikembalikan. Pastikan untuk menggantikan $url dengan alamat antara muka HTTPS sebenar apabila benar-benar menggunakannya.
Kadangkala, sebab PHP tidak dapat memperoleh data biasanya mungkin kerana pengesahan sijil SSL gagal. Jika pengesahan sijil gagal, ini mungkin kerana sijil pelayan tidak dipercayai oleh PHP. Masalah ini boleh diselesaikan dengan menambah pilihan pengesahan SSL dalam permintaan cURL Kod sampel adalah seperti berikut:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
Dua baris kod ini masing-masing menunjukkan membolehkan pengesahan sijil SSL dan menyediakan pengesahan nama hos. Pastikan kedua-dua pilihan ini dikonfigurasikan dengan betul untuk mengelakkan masalah pemerolehan data yang disebabkan oleh kegagalan pengesahan sijil SSL.
Melalui kaedah di atas, anda boleh menyelesaikan masalah bahawa PHP tidak dapat memperoleh data secara normal selepas memasang sijil SSL dalam IIS. Perkara utama ialah memastikan sijil SSL dikonfigurasikan dengan betul, modul sambungan SSL dalam PHP didayakan dan laluan permintaan HTTPS yang betul digunakan. Pada masa yang sama, apabila menghantar permintaan HTTPS melalui perpustakaan cURL, pastikan anda menambah pilihan pengesahan sijil SSL untuk mengelakkan masalah yang disebabkan oleh kegagalan pengesahan sijil SSL dengan berkesan. Semoga kaedah dan contoh kod ini akan membantu anda menyelesaikan masalah ini.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah bahawa PHP tidak boleh mendapatkan data seperti biasa selepas IIS memasang sijil SSL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!