You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9注册验证邮件发送失败:SMTP SSL证书错误

Laravel 9邮件验证SSL证书验证失败解决方案

针对你遇到的stream_socket_client() SSL操作失败,错误码1,OpenSSL提示证书验证失败问题,以下是经过验证的解决办法:

1. 配置PHP的CA证书路径

多数情况是PHP无法找到有效CA证书文件导致的:

  • 下载官方可信的CA证书包,保存为cacert.pem
  • 打开php.ini文件,找到或添加以下配置:
    curl.cainfo = "/证书文件绝对路径/cacert.pem"
    openssl.cafile = "/证书文件绝对路径/cacert.pem"
    
  • 重启Web服务器(Apache/Nginx)和PHP服务

2. 开发环境临时跳过SSL验证(生产环境禁用)

仅用于本地开发测试,生产环境绝对不能使用:

  • 在config/mail.php的smtp配置块中添加:
    'smtp' => [
        // 原有配置项...
        'verify_peer' => false,
        'verify_peer_name' => false,
    ],
    
  • 或者通过.env控制:
    在.env中新增:
    MAIL_VERIFY_PEER=false
    
    然后修改config/mail.php对应项:
    'verify_peer' => env('MAIL_VERIFY_PEER', true),
    

3. 核对SMTP服务配置细节

  • Gmail:需使用“应用专用密码”(Gmail已关闭低安全性应用访问),确保.env中MAIL_USERNAME为你的邮箱,MAIL_PASSWORD是生成的应用密码,端口用465或587
  • Mailtrap:确认MAIL_HOST=smtp.mailtrap.io,MAIL_PORT选2525或465,MAIL_USERNAME和MAIL_PASSWORD与Mailtrap控制台提供的一致

4. 更新系统OpenSSL版本

老旧的OpenSSL版本可能无法识别新的证书:

  • Windows:下载对应PHP版本的OpenSSL扩展并替换,或更新系统组件
  • Mac:用Homebrew执行brew install openssl更新
  • Linux(Ubuntu/Debian):执行sudo apt update && sudo apt install openssl更新
  • 更新后重启PHP服务

内容的提问来源于stack exchange,提问作者Sophie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 20:52:51