Laravel:stream_socket_enable_crypto():SSL 操作失败,代码为 1

Vah*_*wan 1 php ssl laravel

完整的错误描述是:

ErrorException stream_socket_enable_crypto():SSL 操作失败,代码 1。OpenSSL 错误消息:错误:1416F086:SSL 例程:tls_process_server_certificate:证书验证失败

我目前正在使用带有 Voyager 设置的 Laravel 7 ( https://voyager.devdojo.com/ )。

我的配置中已经有这个(基于其他一些答案) 如何修复 stream_socket_enable_crypto(): SSL operation failed with code 1

'stream' => [
    'ssl' => [
        'allow_self_signed' => true,
        'verify_peer' => false,
        'verify_peer_name' => false,
    ],
],
Run Code Online (Sandbox Code Playgroud)

我做了php artisan config:cachephp artisan config:clear

但我仍然遇到同样的错误。

这就是我的 .env 的样子

MAIL_DRIVER=smtp
MAIL_MAILER=smtp
MAIL_FROM_NAME="Voyager"
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=587
MAIL_USERNAME=someUsername
MAIL_PASSWORD=somePassword
MAIL_ENCRYPTION=tls
Run Code Online (Sandbox Code Playgroud)

Moh*_*aza 6

好的,我已经解决了这个错误。我改变了我的.env

我只是将我的MAIL_DRIVERsmtp更改为sendmail,它工作得很好。

MAIL_DRIVER=sendmail 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
MAIL_USERNAME=mygmail@gmail.com 
MAIL_PASSWORD=****** 
MAIL_ENCRYPTION=tls
Run Code Online (Sandbox Code Playgroud)

当我在本地主机上工作时,MAIL_DRIVER=smtp 工作正常,当我在 cpanel 上上传我的项目时,我收到此错误。


Kur*_*ars 5

不是这方面的专家,但您可以尝试 MAIL_ENCRYPTION=null。

我很确定我过去遇到过这种情况,这就是罪魁祸首。

  • “不是这个主题的专家,但你可以通过互联网发送未加密的电子邮件,这样任何人都可以阅读。” (4认同)