桌面浏览器宽松,移动端严格:证书链缺了中级 CA,手机就会报「不受信任」。根因往往是配错了文件。

防护配置

# 用 openssl 看清证书链是否齐全
openssl s_client -connect xirangzhe.com:443 -servername xirangzhe.com

# 确认 Nginx 引用的是 fullchain 而非 cert
ssl_certificate /etc/letsencrypt/live/xirangzhe.com/fullchain.pem;

要点速览

  • ssl_certificate 必须指向 fullchain.pem(含中级),而非 cert.pem(仅叶子)。
  • openssl s_client 能看到服务端实际下发的整条链,缺哪一级一目了然。
  • 链不完整时部分客户端能补全、部分不能,表现就是「有的设备报错的玄学」。
移动端报证书错,十有八九是 fullchain 与 cert 用反了。