Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menangani PHP yang tidak dapat memperoleh data selepas sijil SSL dipasang pada IIS

Cara menangani PHP yang tidak dapat memperoleh data selepas sijil SSL dipasang pada IIS

WBOY
WBOYasal
2024-03-11 14:39:03576semak imbas

Cara menangani PHP yang tidak dapat memperoleh data selepas sijil SSL dipasang pada IIS

Cara menangani PHP tidak dapat memperoleh data selepas sijil SSL dipasang pada IIS

Dalam beberapa tahun kebelakangan ini, dengan peningkatan kesedaran tentang keselamatan rangkaian, pemasangan sijil SSL menjadi semakin penting. Dalam persekitaran Windows, banyak laman web menggunakan IIS sebagai pelayan web, dan PHP juga digunakan secara meluas sebagai bahasa skrip sebelah pelayan. Walau bagaimanapun, selepas memasang sijil SSL, kadangkala akan timbul masalah bahawa PHP tidak dapat memperoleh data, yang boleh menyebabkan keabnormalan perkhidmatan laman web. Artikel ini menyediakan penyelesaian kepada masalah ini dan menyediakan contoh kod terperinci.

Analisis Masalah:

Dalam persekitaran Windows, terutamanya selepas memasang sijil SSL pada pelayan IIS, PHP mungkin menghadapi masalah apabila meminta sumber HTTPS luaran. Ini kerana PHP tidak menyokong protokol SSL/TLS secara lalai, mengakibatkan ketidakupayaan untuk mengesahkan sijil SSL dengan betul. Dalam kes ini, mesej ralat seperti "ralat cURL 60: Masalah sijil SSL: tidak dapat mendapatkan sijil pengeluar tempatan" biasanya muncul.

Penyelesaian:

Untuk menyelesaikan masalah PHP tidak dapat memperoleh data selepas memasang sijil SSL pada IIS, kami boleh mengendalikannya melalui langkah-langkah berikut:

  1. Muat turun fail sijil:

Pertama, kita perlu muat turun akar sijil SSL Fail sijil boleh dimuat turun dari tapak web rasmi pihak berkuasa sijil SSL dan disimpan ke direktori yang ditentukan pada pelayan.

  1. Konfigurasikan fail php.ini:

Seterusnya, kita perlu mengkonfigurasi fail php.ini PHP, dayakan sambungan SSL dan tetapkan laluan fail sijil akar. Buka fail php.ini, cari dua baris konfigurasi berikut, dan pastikan konfigurasi adalah betul:

extension=php_openssl.dll
curl.cainfo = "C:/path/to/your/cacert.pem"

Antaranya, "C:/path/to/your/cacert.pem" ialah laluan ke root fail sijil.

  1. Menggunakan perpustakaan cURL untuk permintaan HTTPS:

Dalam PHP, perpustakaan cURL biasanya digunakan untuk permintaan HTTP, termasuk permintaan HTTPS. Dengan mengubah suai konfigurasi cURL, kami boleh menjadikannya mengesahkan sijil SSL dengan betul apabila meminta sumber HTTPS. Berikut ialah kod contoh mudah:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://example.com/api');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_CAINFO, 'C:/path/to/your/cacert.pem');
$result = curl_exec($ch);
curl_close($ch);
echo $result;

Dalam kod ini, kami mengesahkan sijil SSL dengan menetapkan CURLOPT_SSL_VERIFYPEER, CURLOPT_CAINFO menentukan laluan ke fail sijil akar.

  1. Kod ujian:

Akhir sekali, kami boleh menguji sama ada kod yang diubah suai berjaya memperoleh sumber HTTPS. Ini boleh disahkan dengan melawati URL HTTPS dan mendapatkan data.

Ringkasan:

Melalui langkah di atas, kita boleh menyelesaikan masalah bahawa PHP tidak dapat memperoleh data selepas memasang sijil SSL pada IIS. Dengan mengkonfigurasi fail php.ini dan menggunakan perpustakaan cURL, kami boleh mendayakan PHP untuk mengesahkan sijil SSL dengan betul dan berjaya meminta sumber HTTPS. Dalam aplikasi sebenar, sila laraskan kod secara fleksibel mengikut situasi tertentu dan pastikan kesahihan sijil SSL.

Saya harap artikel ini dapat membantu pembaca menyelesaikan masalah yang sama dan memastikan keselamatan dan operasi normal laman web.

Atas ialah kandungan terperinci Cara menangani PHP yang tidak dapat memperoleh data selepas sijil SSL dipasang pada IIS. 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