stream_socket_enable_crypto() Ralat: Operasi SSL Gagal dengan Kod 1
Apabila menggunakan PHP 5.6 dan sijil SSL GoDaddy pada Amazon EC2 Linux, ralat mungkin timbul semasa penghantaran e-mel dengan Mailgun atau perkhidmatan SMTP lain melalui SSL:
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Punca Punca
Ralat ini berlaku disebabkan pengesahan sijil SSL yang lebih ketat diperkenalkan dalam PHP 5.6. Secara lalai, PHP akan menyemak nama domain dalam URL terhadap nama domain dalam sijil. Memandangkan sijil SSL GoDaddy ialah sijil kad bebas, ia tidak sepadan dengan nama domain khusus pelayan anda.
Penyelesaian
Terdapat dua cara untuk menyelesaikan isu ini:
Pilihan 1: Lumpuhkan Pengesahan Sijil
<code class="php">'stream' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ],</code>
Awas: Melumpuhkan pengesahan sijil boleh menjejaskan keselamatan permohonan anda. Adalah disyorkan untuk menggunakan Pilihan 2 sebaliknya, atau naik taraf kepada PHP 7.2 atau lebih baru.
Pilihan 2: Naik taraf PHP
PHP versi 7.2 dan kemudian sertakan pembetulan untuk ini isu. Menaik taraf versi PHP anda akan menyelesaikan ralat ini dan mengekalkan keselamatan aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'stream_socket_enable_crypto(): Operasi SSL Gagal dengan Kod 1\' Ralat Menggunakan PHP 5.6 dan GoDaddy SSL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!