web-dev-qa-db-fra.com

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

J'envoyais des courriels en utilisant Gmail et tout fonctionnait parfaitement, mais soudainement, ça a cessé de fonctionner. Et ça me montre ça

ErrorException in StreamBuffer.php line 94:

stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

in StreamBuffer.php line 94
at HandleExceptions->handleError('2', 'stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed', 'C:\xampp\htdocs\coparmex\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php', '94', array())
at stream_socket_enable_crypto(resource, true, '9') in StreamBuffer.php line 94
at Swift_Transport_StreamBuffer->startTLS() in EsmtpTransport.php line 313
at Swift_Transport_EsmtpTransport->_doHeloCommand() in AbstractSmtpTransport.php line 118
at Swift_Transport_AbstractSmtpTransport->start() in Mailer.php line 79
at Swift_Mailer->send(object(Swift_Message), array()) in Mailer.php line 385
at Mailer->sendSwiftMessage(object(Swift_Message)) in Mailer.php line 171

Et cela ne se produit que chez mon hôte local, l'hôte Web fonctionne bien. Je ne comprends pas ce qui se passe: c

Ce sont mes paramètres gmail

MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=gmail
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
7
Saucyloco

C'est une erreur avec votre certificat SSL. Vous essayez d'utiliser une connexion SSL (connexion sécurisée cryptée) sans certificat approprié.

C'est parce que vous vous connectez à partir de localhost, qui n'est pas sécurisé et qui est bloqué par la connexion. Vous pourriez éviter cela en changeant votre connexion localhost en une connexion SSL.

Voir ce lien pour plus de détails.

8
Andrey

Vous devriez ajouter le code ci-dessous dans /config/mail.php (travaillé sur laravel 5.4)

'stream' => [
'ssl' => [
    'allow_self_signed' => true,
    'verify_peer' => false,
    'verify_peer_name' => false,
],
],

comme vous ne devriez jamais changer de code chez les vendeurs comme suggéré par le sultan Ahmad 

Note de l'éditeur: la désactivation de la vérification SSL a des implications en matière de sécurité. Sans vérification de l'authenticité des connexions SSL/HTTPS, un attaquant malveillant peut emprunter l'identité d'un point de terminaison approuvé (tel que GitHub ou un autre hôte Git distant), et vous serez donc vulnérable à un Homme au milieu Attaque . Assurez-vous de bien comprendre les problèmes de sécurité avant de vous en servir comme solution.

27
Junaid Masood

J'ai eu le même problème et j'ai pu résoudre le problème en supprimant un niveau de sécurité de l'authentification. C'est-à-dire qu'à un moment donné, Gmail m'a demandé le numéro de téléphone - 2e niveau d'authentification. Lorsque j'ai supprimé ce 2e niveau, j'étais à nouveau heureux. J'espère avoir aidé.

1
Otrebla