Maison >développement back-end >tutoriel php >Comment résoudre l'erreur « stream_socket_enable_crypto() : l'opération SSL a échoué avec le code 1 » dans la classe de messagerie de Laravel ?

Comment résoudre l'erreur « stream_socket_enable_crypto() : l'opération SSL a échoué avec le code 1 » dans la classe de messagerie de Laravel ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-19 10:28:301093parcourir

How to Resolve the

Comprendre et résoudre "stream_socket_enable_crypto() : l'opération SSL a échoué avec le code 1"

L'erreur "stream_socket_enable_crypto() : l'opération SSL a échoué avec le code 1" se produit généralement lors de l'utilisation de l'extension openSSL de PHP pour vérifier les certificats SSL. Cela peut se produire dans diverses situations, notamment en utilisant un certificat auto-signé ou en se connectant à un nom d'hôte qui ne correspond pas au certificat.

Dans votre cas, l'erreur apparaît lors de l'envoi d'un e-mail à l'aide de la classe Mail de Laravel. Les étapes suivantes expliquent comment résoudre ce problème :

1. Comprendre les implications en matière de sécurité :

  • Il est crucial de reconnaître que la désactivation de la vérification SSL peut compromettre la sécurité. Les attaquants peuvent usurper l'identité de points de terminaison de confiance et lancer des attaques Man-in-the-Middle (MITM) si l'authenticité du certificat n'est pas validée.

2. Désactivez la vérification SSL (Attention) :

  • Ouvrez le fichier /config/mail.php.
  • Ajoutez le code suivant à la configuration 'stream' dans le 'mail' section :
'stream' => [
   'ssl' => [
      'allow_self_signed' => true,
      'verify_peer' => false,
      'verify_peer_name' => false,
   ],
],

Remarque : Désactivez la vérification SSL uniquement si vous comprenez parfaitement les risques de sécurité et que vous utilisez un certificat auto-signé ou que vous vous connectez à un nom d'hôte qui ne correspond pas le certificat.

Conseils supplémentaires :

  • Vérifiez que votre version PHP prend en charge OpenSSL (la version 5.6 ou supérieure est recommandée).
  • Assurez-vous que l'extension openSSL de PHP est activée (utilisez 'phpinfo()' pour vérifier).
  • Assurez-vous que le bon certificat SSL est installé sur votre serveur Web.
  • Essayez de vous connecter directement à l'URL SSL dans un navigateur pour confirmer si le certificat est valide.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn