Flutter Web部署Firebase+Hostinger转发后Safari出现ERR_SSL_PROTOCOL_ERROR
以下是针对该问题的具体排查和解决步骤:
检查Hostinger转发的SSL配置
确认Hostinger的域名转发是否启用了HTTPS转发,而非HTTP。Safari对非HTTPS的跳转兼容性要求更严格,Chrome可能自动处理HTTP到HTTPS的过渡,但Safari会直接抛出SSL错误。同时要验证Hostinger提供的SSL证书(比如Let's Encrypt免费证书)是否已正确部署到www.aiderahtech.com子域名,确保证书未过期且覆盖完整。验证Firebase Hosting的SSL与配置
确保Firebase Hosting已启用HTTPS,若已绑定自定义域名需确认SSL验证完成。检查firebase.json的配置,避免出现强制HTTP的规则,推荐添加HSTS头强化HTTPS策略:{ "hosting": { "public": "build/web", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ], "headers": [ { "source": "**", "headers": [ { "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains" } ] } ] } }调整Hostinger转发类型
避免使用帧转发(Frame Forwarding),这种方式在Safari中易因SSL上下文不匹配触发错误。改用301/302永久/临时重定向,且确保转发目标是Firebase Hosting的HTTPS域名(如xxx.web.app),而非HTTP地址。排查Safari本地缓存与设置
清除Safari的网站缓存和数据:通过Safari > 设置 > 隐私 > 管理网站数据找到www.aiderahtech.com并删除。同时临时关闭Safari的「阻止跨站跟踪」等安全限制,测试是否恢复正常。验证SSL链完整性
使用本地命令检测域名的SSL链是否完整:openssl s_client -connect www.aiderahtech.com:443查看输出是否存在证书链错误(如缺少中间证书),这类问题在Safari中更容易暴露,Chrome可能会自动补充缺失的中间证书。
内容的提问来源于stack exchange,提问作者Usaid Asif

