证书链为什么会缺中间证书
浏览器能过、命令行过不了,多半是这条链断了。
什么是链
服务端下发的证书通常不止一张:最前面是域名对应的叶子证书,后面跟着一张或多张中间证书,再往上是被广泛信任的根证书。根证书由客户端自己持有,不需要服务端下发。
只要中间证书缺失,链就断了。有些客户端会自动去补这张证书,所以看起来正常;另一些客户端严格校验,就会直接判定不可信。
为什么会出现
最常见的原因是合并文件时只合并了叶子证书和私钥,漏掉了中间证书。也可能是证书签发方更新了中间证书,而服务端用的还是旧的那张。
怎么判断
把服务端实际下发的整条链抓下来数一数:只有一张,基本就是缺中间证书。这是命令行工具能直接看出来的,不需要等用户反馈。
顺手把它变成例行检查
把"链的张数"和"服务端下发证书指纹"一起纳入定期检查,比人工看输出可靠得多。