pc端打开微信小程序可以访问,但是在手机端就是不行
·
问题根源是手机端微信的SSL验证比PC端更严格。
虽然您之前验证过证书,但PC端微信可能自动补全了中间证书,而手机端微信不会这样做。
一、根本原因:证书链不完整
1.1 立即验证(关键)
在任意公网Linux服务器上执行(不要用您的本地机器):
# 测试新IP的证书链(这才是手机端微信看到的)
openssl s_client -connect 新IP地址:443 -servername yourdomain.com -showcerts
# 正常结果:应显示2-3个证书块(根证书+中间证书+域名证书)
# 异常结果:只显示1个证书块(仅域名证书,缺少中间证书)
或者使用在线检测工具:
# 访问 https://www.myssl.cn/tools/check-server-cert.html
# 输入您的域名,检查"证书链"是否完整
如果检测结果缺少中间证书,PC端微信可以访问,但手机端微信必然失败。
二、解决方案:配置完整证书链
1. 获取完整链证书
-
阿里云/腾讯云:下载Nginx版本的证书包,其中
fullchain.pem已包含中间证书 -
Certbot/Let's Encrypt:使用
fullchain.pem而非cert.pem -
手动合并:将中间证书内容追加到域名证书文件末尾
-
# 手动合并示例 cat your.domain.crt intermediate.crt > fullchain.crt2. Nginx配置(必须)
-
server { listen 443 ssl; server_name yourdomain.com; # ✅ 正确:使用fullchain ssl_certificate /path/to/fullchain.crt; # ❌ 错误:仅使用域名证书 # ssl_certificate /path/to/your.domain.crt; ssl_certificate_key /path/to/private.key; }3. 重启后验证
-
nginx -s reload # 再次检测,必须看到多个证书 openssl s_client -connect yourdomain.com:443 -showcerts一句话总结
PC端微信的SSL验证更宽松,手机端微信要求服务器必须返回完整证书链。请立即用
openssl s_client -showcerts验证,80%的概率会发现自己确实缺少中间证书。
更多推荐



所有评论(0)