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

本地环境Laravel在Safari出现SSL错误但Chrome正常求助

问题分析与解决方法

可能原因1:浏览器HSTS缓存强制跳转HTTPS

虽然Chrome正常,但你使用的其他浏览器可能曾访问过HTTPS版本的localhost:8000,浏览器的HSTS(HTTP严格传输安全)缓存会自动将HTTP请求转为HTTPS,而本地开发环境未配置有效SSL证书,因此触发SSL错误。

解决步骤:

  • 若为Chrome系浏览器,访问chrome://net-internals/#hsts,在「Delete domain security policies」输入框填入localhost并点击删除;Firefox可打开about:config,搜索network.stricttransportsecurity.preloadlist,暂时禁用或清除对应域名的HSTS记录。
  • 关闭浏览器所有窗口后重新打开,再访问http://localhost:8000。

可能原因2:Laravel项目存在强制HTTPS配置

检查项目中是否有强制跳转HTTPS的设置:

  • 再次确认.env文件,是否存在FORCE_HTTPS=true,或APP_URL被误设为HTTPS开头;
  • 打开app/Providers/AppServiceProvider.php,查看boot方法中是否有类似代码:
    \URL::forceScheme('https');
    
    若有,注释掉或改为http,然后执行配置缓存清除命令:
    php artisan config:clear
    

可能原因3:本地代理/安全工具强制HTTP转HTTPS

电脑上的杀毒软件、VPN、浏览器插件(如HTTPS Everywhere)可能自动将本地HTTP请求转为HTTPS,引发SSL错误。

解决步骤:

  • 暂时关闭这类工具或插件,重新尝试访问http://localhost:8000;
  • 若为浏览器插件,直接禁用相关HTTPS强制插件后重试。

可能原因4:npm run hot导致的资源混合内容问题(若为资源加载时的SSL错误)

如果是页面加载后CSS/JS资源出现SSL错误,是因为npm run hot的资源从http://localhost:3000加载,而页面被强制转到HTTPS后触发混合内容拦截。

解决步骤:

  • 确保.env的APP_URL为http://localhost:8000,同时检查webpack.mix.js的资源路径配置:
    mix.js('resources/js/app.js', 'public/js')
       .sass('resources/sass/app.scss', 'public/css')
       .options({
           processCssUrls: false
       })
       .hot('http://localhost:3000');
    
  • 重启npm run hot和Laravel服务,清除浏览器缓存后重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 00:21:04