Masalah PHP tidak dapat memperoleh data selepas memasang sijil SSL dalam IIS adalah cabaran teknikal yang biasa Untuk masalah ini, kami memerlukan beberapa petua dan contoh kod khusus untuk menyelesaikannya. Dalam artikel ini, kami akan membincangkan beberapa penyelesaian dan memberikan contoh kod yang sepadan.
Pertama, pastikan sijil SSL dipasang dan dikonfigurasikan dengan betul pada pelayan IIS. Semak sama ada sijil telah dipasang dengan betul dan ikat sijil ke tapak web atau aplikasi yang sepadan dalam alat pengurusan IIS.
Dalam fail konfigurasi PHP (php.ini), pastikan item konfigurasi berikut dihidupkan:
extension=openssl
Ini akan membolehkan sambungan OpenSSL PHP, membolehkannya berkomunikasi dengan sijil SSL.
cURL ialah alat pemindahan data yang berkuasa yang boleh digunakan untuk mengakses URL pelbagai protokol. Dengan menggunakan perpustakaan cURL kami boleh berkomunikasi dengan mudah dengan sijil SSL. Berikut ialah contoh kod PHP mudah yang menggunakan perpustakaan cURL untuk menghantar permintaan HTTPS:
<?php $url = 'https://example.com/api/data'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 忽略SSL证书验证 $response = curl_exec($ch); if ($response === false) { echo 'Error: ' . curl_error($ch); } else { echo 'Response: ' . $response; } curl_close($ch); ?>
Dalam kod ini, kami menetapkan beberapa pilihan cURL melalui fungsi curl_setopt, yang termasuk mengabaikan pengesahan sijil SSL. Walaupun mematikan pengesahan sijil SSL tidak disyorkan dalam persekitaran pengeluaran, isu ini boleh dipintas dengan mudah semasa fasa ujian.
Dalam sesetengah kes, PHP mungkin tidak dapat membaca sijil SSL dengan betul, menyebabkan komunikasi gagal. Dalam kes ini, anda boleh menentukan laluan ke sijil SSL secara eksplisit untuk memastikan PHP boleh mengaksesnya dengan betul. Berikut ialah contoh kod:
<?php $certPath = 'C:/path/to/cert.pem'; $url = 'https://example.com/api/data'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_CAINFO, $certPath); // 指定SSL证书路径 $response = curl_exec($ch); if ($response === false) { echo 'Error: ' . curl_error($ch); } else { echo 'Response: ' . $response; } curl_close($ch); ?>
Dalam kod ini, kami secara eksplisit menentukan laluan ke sijil SSL melalui pilihan CURLOPT_CAINFO bagi fungsi curl_setopt untuk memastikan cURL boleh mengaksesnya dengan betul.
Dengan petua dan contoh kod di atas, anda sepatutnya dapat menyelesaikan masalah PHP tidak mendapat data selepas memasang sijil SSL dalam IIS. Ingat untuk memulihkan pengesahan sijil SSL dalam persekitaran pengeluaran untuk memastikan keselamatan penghantaran data. Semoga berjaya menyelesaikan masalah anda!
Atas ialah kandungan terperinci Petua untuk menyelesaikan ketidakupayaan PHP untuk mendapatkan data selepas memasang sijil SSL dalam IIS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!