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

Shopware 6 HSTS含子域致链接失效:解决方法与安全性问询

Shopware 6 HSTS 子域冲突问题解答

场景背景

我们在主域运行Shopware 6商店,子域newsletter.example.com通过CNAME指向Cleverreach,但该子域未启用HTTPS。由于Shopware默认发送包含includeSubDomains的HSTS头,导致这个子域链接无法正常工作。Shopware相关代码如下:

$response->headers->set('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');

目前已通过Apache mod_header配置临时修改HSTS头:

Header edit Strict-Transport-Security "max-age=31536000; includeSubDomains" "max-age=31536000"

1. 移除includeSubDomains是否为最佳解决方式?

不是最佳方案。既然你们已经计划给newsletter.example.com启用HTTPS,这才是符合HSTS设计初衷的根本解决办法。移除includeSubDomains只是临时规避问题的手段,并非长期最优解。

2. 移除includeSubDomains对商店安全性的影响

  • 主域本身的HSTS保护依然生效:浏览器会强制主域使用HTTPS,防止HTTP降级攻击。
  • 子域失去强制HTTPS保护:如果后续新增其他子域(比如admin.example.com、api.example.com),浏览器不会自动强制这些子域走HTTPS,存在被HTTP劫持、降级攻击的风险。

3. Shopware为何默认设置includeSubDomains?

Shopware的设计逻辑是默认假设商家的所有子域都属于同一业务体系,且都会启用HTTPS——比如后台管理、API、CDN子域等。添加includeSubDomains可以一次性为所有子域开启HSTS强制保护,简化配置,避免商家遗漏子域的安全设置,整体提升全站的安全性。

4. 现有Apache临时方案的安全隐患

  • 全局移除子域保护:和直接修改Shopware代码的效果一致,所有子域都失去了HSTS强制保护,新增子域时容易出现安全漏洞。
  • 规则兼容性风险:如果Shopware后续调整HSTS头的格式(比如添加preload参数),Apache的Header edit规则可能失效,导致HSTS配置不符合预期。
  • 缓存残留问题:用户浏览器之前已经缓存了带includeSubDomains的HSTS规则,需要等待max-age过期(一年)才会生效新规则,期间部分用户仍会遇到子域无法访问的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:27:10