Selesaikan masalah Kegagalan Pengesahan Sijil SSL dalam PHPMailer
Pengguna PHPMailer mungkin menghadapi ralat "SSL3_GET_SERVER_CERTIFICATE: pengesahan sijil gagal" semasa menghantar e-mel sendiri daripada pelayan -sijil yang ditandatangani. Isu ini timbul disebabkan oleh pengesahan sijil SSL yang diperkenalkan dalam PHP 5.6.
Punca Punca:
Secara lalai, PHPMailer mengesahkan sijil SSL untuk memastikan ketulenannya. Apabila sijil yang ditandatangani sendiri ditemui, pengesahan gagal kerana ketiadaan CA (Pihak Berkuasa Sijil) yang sesuai.
Penyelesaian:
Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:
1. Betulkan Konfigurasi SSL:
Jika boleh, dapatkan sijil SSL yang sah yang ditandatangani oleh CA yang dipercayai dan pasangkannya dengan betul pada pelayan mel anda. Ini akan memastikan pengesahan sijil berjaya.
2. Lumpuhkan Pengesahan Sijil SSL (Tidak Disyorkan):
Amaran: Melumpuhkan pengesahan sijil mempunyai implikasi keselamatan yang serius. Ia mendedahkan anda kepada risiko serangan man-in-the-middle.
Untuk melumpuhkan pengesahan sijil, tetapkan pilihan PHPMailer berikut:
<code class="php">$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );</code>
Mengedit pustaka PHPMailer untuk melumpuhkan pengesahan ialah sangat tidak digalakkan kerana ia akan rosak apabila naik taraf.
Pertimbangan Keselamatan:
Melumpuhkan pengesahan sijil SSL hanya boleh dianggap sebagai penyelesaian sementara, bukan penyelesaian jangka panjang. Adalah penting untuk melindungi konfigurasi SSL anda untuk mengelakkan kemungkinan pelanggaran keselamatan.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'SSL3_GET_SERVER_CERTIFICATE: pengesahan sijil gagal\' dalam PHPMailer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!