Shopware 6项目脚本加载失败(SSL证书域名错误)求助
Shopware 6 脚本加载SSL证书域名不匹配问题排查与解决
问题场景
在Shopware 6项目的base.html.twig中嵌入了动态加载第三方脚本的代码:
{% block layout_head_javascript_tracking_swag_global %} <!-- ... --> {% if swagData.active %} <script> // ... var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'https://{{ swagData.cname|trim }}'; script.async = true; document.getElementsByTagName("head")[0].appendChild(script); </script> {% endif %} {% endblock %}
加载时Firefox控制台报错,网络请求返回ns_error_generate_failure(ns_error_module_security,ssl_error_bad_cert_domain)。
错误详情
- 控制台错误:
Loading failed for the <script> with the src "https://rast.swag.de/". - 网络请求错误:
ns_error_generate_failure(ns_error_module_security,ssl_error_bad_cert_domain)
原因分析
这个错误明确指向SSL证书域名不匹配:
- 目标域名
rast.swag.de配置的SSL证书,其证书主体(Common Name)或主题备用名称(Subject Alternative Name, SAN)中不包含rast.swag.de这个域名 - 浏览器的安全机制会拦截这种证书与域名不匹配的请求,防止中间人攻击
解决步骤
1. 验证目标域名的证书配置
直接在浏览器地址栏访问https://rast.swag.de,查看证书详情:
- 点击地址栏的锁形图标 → 查看证书 → 检查「主题」和「主题备用名称」字段,确认是否包含
rast.swag.de - 如果证书中没有该子域名,说明证书配置错误,需要更新证书
2. 确认swagData.cname的取值正确性
检查Shopware后台或相关配置中swagData.cname的设置,确认是否存在拼写错误(比如把正确的子域名写成了rast),如果是配置错误,修正为正确的域名即可。
3. 修复SSL证书(生产环境必须)
如果证书确实不包含rast.swag.de,需要:
- 向证书颁发机构(CA)申请更新证书,将
rast.swag.de添加到主题备用名称(SAN)列表中 - 重新部署更新后的证书到服务器/CDN节点
4. 开发环境临时调试(仅用于测试,禁止生产环境使用)
如果是开发环境需要临时绕过该验证,可以在Firefox中做以下设置:
- 输入
about:config进入配置页面,接受风险提示 - 搜索并设置
security.ssl.enable_ocsp_stapling为false - 或者设置
security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref为true
注意:以上操作会降低浏览器的安全性,仅用于临时调试,测试完成后务必恢复默认设置。
内容的提问来源于stack exchange,提问作者Auhona
相关产品推荐
相关产品推荐

