本地Laravel Sail项目配置SSL后报Unsupported SSL request错误如何解决
报错根本原因
你当前的错误是因为Nginx Proxy Manager(NPM)将加密的HTTPS请求直接转发到了仅支持HTTP协议的Laravel Sail 80端口,Sail内置的Web服务无法解密HTTPS流量,因此抛出Unsupported SSL request错误。
解决步骤
第一步:修正NPM反向代理配置
打开NPM管理后台,编辑你对应前后端域名的代理主机规则:
- 转发协议选HTTP,不要选HTTPS
- 转发目标IP填你宿主机的IP;如果NPM和Sail应用在同一个Docker网络下,可以直接填对应容器名:前端填
papa-frontend,后端填papa-dashboard - 转发端口填对应映射端口:前端填
8002,后端填8001 - 勾选「SSL」标签下的「强制HTTPS」、「HTTP/2支持」选项
- 勾选「高级」标签下的「Websockets支持」,同时添加以下配置确保请求头正确传递:
location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; proxy_pass http://<你刚才填的转发目标>:<对应端口>; }
第二步:修改Laravel应用配置
分别修改前后端两个Laravel应用的配置:
- 编辑项目根目录下的
.env文件:
# 改成对应业务的HTTPS域名 APP_URL=https://你的业务域名 # 信任所有代理,生产环境可以替换为NPM所在的Docker网段提升安全性 TRUSTED_PROXIES=*
- 编辑
app/Providers/AppServiceProvider.php,在boot方法中添加强制HTTPS协议的配置:
use Illuminate\Support\Facades\URL; public function boot() { // 非本地环境强制生成HTTPS链接 if ($this->app->environment('production')) { URL::forceScheme('https'); } }
- 重启两个Sail应用生效:
./vendor/bin/sail restart
注意事项
如果配置后出现重定向次数过多的报错,确认TRUSTED_PROXIES配置正确,且NPM规则中已经正确传递X-Forwarded-Proto头即可解决。
可选优化(推荐)
为了避免直接暴露Sail端口到公网,你可以把NPM加入到两个Sail应用的mci_events_sail外部网络中,之后NPM转发时可以直接用容器名+80端口访问,不需要填写宿主机IP和映射的8001/8002端口,安全性更高。
内容的提问来源于stack exchange,提问作者Georgescu Rares Daniel
相关产品推荐
相关产品推荐

