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

Shopware 6.4.12.0版本SSL卸载故障及配置方法咨询

Shopware 6.4.12.0 SSL卸载异常问题解答

版本行为确认

该现象确实是6.4.12.0版本调整默认安全策略导致的,不属于部署操作失误。
从6.4.12.0版本开始,Shopware收紧了底层Symfony框架的可信代理默认规则:旧版本默认信任所有代理传递的X-Forwarded-*系列请求头,新版本默认不信任任何外部代理透传的协议、主机码头,即使APP_URL设置为HTTPS地址,只要应用侧收到的是Apache转发的HTTP明文请求,生成所有资源、路由链接时都会默认使用HTTP协议,最终出现后台加载HTTP资源的跨协议报错。

Traefik终止SSL场景的正确配置步骤

针对Traefik做SSL终止、Apache作为容器内Web服务器的架构,按以下顺序配置即可修复问题:

  • 第一步:配置Shopware可信代理规则
    在项目根目录的.env文件中新增以下配置,替换原有相关参数:

    # 信任本地回环、当前请求来源IP,适配Docker动态内网网段,CI环境无需硬编码固定IP
    TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR
    # 限制可信访问域名,规避主机头攻击风险
    TRUSTED_HOSTS=^example\.com$
    

    如果部署环境的Docker网络使用固定网段,也可以直接把Traefik服务所在的CIDR网段加到TRUSTED_PROXIES列表中,多个值用逗号分隔即可。

  • 第二步:调整Apache透传协议头配置
    6.4.12.0版本默认的.htaccess规则移除了自动从反向代理头识别HTTPS状态的逻辑,需要手动在Apache虚拟主机配置或者项目根目录.htaccess中补充规则(提前确认Apache已启用mod_headers、mod_setenvif模块):

    # 识别Traefik传递的HTTPS协议标识,传递给PHP解析层
    SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on
    RequestHeader set X-Forwarded-Proto expr=%{reqenv:X-Forwarded-Proto}
    RequestHeader set X-Forwarded-Host expr=%{reqenv:X-Forwarded-Host}
    

    这一步配置完成后,PHP侧的$_SERVER['HTTPS']参数会在HTTPS访问时正确返回on值,Shopware生成链接时会自动使用HTTPS前缀。

  • 第三步:校验Traefik转发规则
    确认Traefik到Shopware容器的路由配置中,没有手动覆盖X-Forwarded-Proto、X-Forwarded-Host头。Traefik默认会自动透传这类请求头,不需要额外添加配置,只要不存在强制把X-Forwarded-Proto设为http的错误规则即可。

  • 第四步:清理配置缓存
    进入Shopware项目根目录执行命令清理缓存,让新配置生效:

    bin/console cache:clear
    # 生产环境执行完清理后补充执行缓存预热
    bin/console cache:warmup
    

注意:不要通过修改核心代码、硬写静态资源HTTPS路径的方式修复问题,这类修改会在后续版本升级时被覆盖。上述配置是Shopware官方推荐的反向代理SSL终止标准方案,兼容后续6.4.x、6.5.x系列版本升级。

配置完成后重新访问管理后台,所有资源链接都会自动生成HTTPS地址,不会再出现跨协议加载失败的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:09:17