浏览器访问正常,但移动端和 curl 报证书错误。

原因:服务器只配了站点证书,没配中间证书。浏览器会自动下载缺失的中间证书,很多客户端不会。

解:fullchain.pem 里要有完整的证书链(站点证书 + 中间证书)。

检查方法:
openssl s_client -connect host:443 -showcerts
看输出的证书数量,只有一张就是缺中间证书。

这类问题很隐蔽,因为主流浏览器都能自动补全。上线后才发现部分用户用不了。

现在我的检查清单里加了一条:用 openssl 验证证书链完整。

主楼