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

Laravel Reverb本地WebSocket SSL连接问题解决方案

Laravel 11.9 + Reverb 1.0 HTTPS自签名证书问题解决方案

针对Laravel Reverb搭配HTTPS和自签名证书时出现的连接错误,以下是经过验证的解决步骤:

  • 更新.env文件
    确保Reverb使用HTTPS协议,并配置证书文件路径:

    REVERB_SCHEME=https
    SSL_CERTIFICATE=path/to/file.crt
    SSL_CERTIFICATE_KEY=path/to/file.key
    
  • 配置Nginx
    使用@ws location避免与现有路由冲突,转发Reverb请求:

    # 转发请求到Reverb(广播服务)
    location @ws {
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header SERVER_PORT $server_port;
        proxy_set_header REMOTE_ADDR $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    
        proxy_pass http://0.0.0.0:8080;
    }
    
  • 修改config/reverb.php
    指定本地证书和密钥,本地环境禁用证书校验:

    'options' => [
        'tls' => [
            'local_cert' => env('SSL_CERTIFICATE'),
            'local_pk' => env('SSL_CERTIFICATE_KEY'),
            'verify_peer' => env('APP_ENV') !== 'local',
        ],
    ],
    
  • 修改config/broadcasting.php
    配置Guzzle客户端,本地环境关闭证书验证:

    'client_options' => [
        'verify' => env('APP_ENV') !== 'local',
    ],
    
  • 暴露8080端口
    若使用Docker,需确保8080端口已对外公开。

以上配置可解决Laravel Reverb搭配HTTPS自签名证书时的各类连接问题。

问题排查过程

  1. 初始Nginx配置冲突:Laravel文档默认的location /已被占用,改用@ws后解决;
  2. 端口未暴露:Docker环境下未开放8080端口导致无法访问;
  3. HTTPS证书校验失败:HTTP下WebSocket正常,但HTTPS连接失败,通过日志定位到verify_peer配置错误,调整后修复。

内容的提问来源于stack exchange,提问作者Francis Pocket Lacerte

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 16:05:06