Erreur stream_socket_enable_crypto() : échec de l'opération SSL avec le code 1
Lors de l'utilisation de PHP 5.6 et d'un certificat SSL GoDaddy sur Amazon EC2 Linux, un une erreur peut survenir lors de l'envoi d'e-mails avec Mailgun ou d'autres services SMTP via 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
Cause première
Cette erreur se produit en raison d'une vérification plus stricte du certificat SSL introduite dans PHP 5.6. Par défaut, PHP vérifiera le nom de domaine dans l'URL par rapport au nom de domaine dans le certificat. Le certificat SSL de GoDaddy étant un certificat générique, il ne correspond pas au nom de domaine spécifique de votre serveur.
Solution
Il existe deux façons de résoudre ce problème :
Option 1 : Désactiver la vérification du certificat
<code class="php">'stream' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ],</code>
Attention : La désactivation de la vérification du certificat peut compromettre la sécurité de votre application. Il est recommandé d'utiliser l'option 2 à la place ou de mettre à niveau vers PHP 7.2 ou version ultérieure.
Option 2 : mettre à niveau PHP
Les versions PHP 7.2 et ultérieures incluent un correctif pour cela problème. La mise à niveau de votre version PHP résoudra cette erreur et maintiendra la sécurité de votre application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!