微信小程序打不开
微信小程序,换服务器后,电脑端可以打开,使用微信开发者工具可以正常打开,使用手机就不行,部分手机也能打开,会是啥原因呢
解决思路
“电脑/开发者工具正常,手机不行,且只有部分手机不行” 99% 是真机环境差异导致的,按出现频率由高到低排查清单如下:
-
SSL 证书链不完整(最常见)
现象:
- iOS 全部失败,Android 部分失败(高版本系统严格)。
- 电脑浏览器因缓存或自动补链能打开。
检测:
https://myssl.com 输入域名 → 看“证书链”是否提示“缺少中间证书”。
解决:
在服务器补全中间证书(Nginx 把
fullchain.cer放进ssl_certificate字段)。
-
TLS 版本过低 / 加密套件不兼容
微信真机要求 TLS≥1.2,且不能启用已淘汰的套件(如 3DES-CBC)。
检测:
https://www.ssllabs.com/ssltest → 最低支持协议若显示 TLS 1.0/1.1 就会失败。
解决:
服务器配置只保留 TLSv1.2 + TLSv1.3,加密套件用
ECDHE-RSA-AES128-GCM-SHA256等现代套件。
-
域名未备案 / 解析未生效 / 本地 DNS 缓存
电脑常走公司/校园 DNS 已刷新;手机仍用旧 DNS 或运营商缓存。
解决:
- 换 4G/5G 再测;
ping 域名看解析是否指向新服务器;- 备案系统确认已变更接入商并审核通过。
-
小程序后台
request合法域名未更新换服务器后若域名没变可跳过;
若域名变更→ 登录 MP 后台 → 开发 → 开发设置 → 服务器域名 → 把新域名加进
request合法域名,必须 HTTPS。
-
安卓系统时间错误 / 证书过期
手机日期慢 1 天就会报
certificate has expired,电脑时间正确。
-
安卓 7.0 以下 不信任用户证书(抓包后忘记关)
开过 Charles/Fiddler 会装根证书,关闭代理后部分低端机仍走用户证书 → 微信拒绝连接。重启手机或重置网络设置。
-
内容安全策略(CSP)/ HSTS 把 http 升级 https 导致
若旧地址写过
Strict-Transport-Security且含includeSubDomains,换 IP 后首次 http 访问会被浏览器/系统强制 307 到 https,小程序端表现为空白。
快速自检脚本(让运维跑)
openssl s_client -connect 新域名:443 -servername 新域名 < /dev/null | grep "Verify return code"
返回 0(ok) 才算链完整;非 0 直接补证书链即可。
结论
先把 1. 证书链 和 2. TLS 版本 按上面工具检测一遍,90% 的“部分手机打不开”问题都能解决。
SSL
换阿里云的SSL证书即可