电脑访问正常、手机却提示证书无效,九成是证书链不完整。本文给出三步定位法,以及 Nginx、Apache、IIS 三大平台的链文件配置方式。
为什么只有部分设备报错
桌面浏览器通常内置了中间证书缓存,即使服务器未下发完整证书链也能自动补全;而部分安卓机型、微信内置浏览器与 Java 客户端不具备该能力,于是出现「电脑正常、手机报错」的现象。
三步定位法
第一步,使用 openssl s_client -connect 域名:443 -showcerts 查看服务端下发的证书数量,正常应包含站点证书与中间证书。第二步,用站内 SSL 检测工具查看证书链完整性评级。第三步,检查 Nginx 的 ssl_certificate 是否只配置了站点证书而遗漏中间证书。
各平台修复方式
Nginx:将站点证书与中间证书按顺序拼接为 fullchain.pem 后配置到 ssl_certificate。Apache:使用 SSLCertificateChainFile 指向中间证书。IIS:在证书导入向导中勾选「包含所有证书」后重新导入 PFX。修复后务必清理本地 SSL 状态缓存再验证。