移动端Web出现Failed to Fetch错误的排查求助
排查建议
1. 确认SSL证书覆盖范围
- 执行命令
certbot certificates查看当前证书的域名列表,确认是否包含admin.example.co.kr和yjhorion.co.kr(错误日志中出现的域名) - 如果证书未覆盖所需子域名或目标域名,使用certbot重新申请包含所有必要域名的证书:
certbot certonly --nginx -d example.co.kr -d *.example.co.kr -d yjhorion.co.kr(根据实际域名调整参数) - 证书申请完成后重启NGINX:
sudo systemctl restart nginx
2. 修复移动端SSL协议兼容性
- 检查NGINX配置的SSL协议支持,确保兼容移动端常见浏览器,在对应server块中添加或调整:
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; - 重启NGINX后,用命令测试SSL连接:
openssl s_client -connect yjhorion.co.kr:443 -tls1_2,确认握手正常
3. 拦截恶意扫描请求
- 来自
Go-http-client/1.1的敏感文件请求属于恶意扫描,与前端报错无关,可通过NGINX配置拦截:location ~* (/config.yaml|/.ssh/id_rsa|/etc/passwd) { deny all; return 404; } - 过滤恶意请求后,单独分析前端正常请求(如
/auth、/CompQC/D)的日志,查看具体错误状态码
4. 统一CORS配置避免冲突
- 优先保留NGINX的CORS配置,删除Node.js中的重复设置,避免规则冲突。NGINX配置示例:
add_header Access-Control-Allow-Origin "https://admin.example.co.kr" always; add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" always; add_header Access-Control-Allow-Headers "Content-Type, Authorization" always; if ($request_method = OPTIONS) { return 204; }
5. 移动端请求抓包分析
- 使用移动端浏览器的远程调试工具(如Chrome DevTools)抓包,查看
/auth和/CompQC/D请求的细节:- 确认请求的域名、协议、端口是否正确
- 检查响应头中的证书信息,确认证书有效性
- 排查是否存在重定向导致的协议跳转错误
内容的提问来源于stack exchange,提问作者Jae Hyun Yoo
相关产品推荐
相关产品推荐

