多个用户反馈证书颁发者是一个没听过的机构,我们自己的证书详情里完全正常,换个网络又好了。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,部分网络出口做了 TLS 中间人,用自己的根证书重签流量,客户端如果信任了那个根就看不出异常。办公网和公共 WiFi 最常见。
「证书被替换」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -issuer -fingerprint -sha256
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
具体做法是,先让反馈用户提供证书详情的颁发者和指纹,跟源站比对;源站开 HSTS 并提交 preload,减少被降级劫持的机会;对证书做透明度监控,指纹一变就告警,别等用户投诉。
最后用这个标准收尾,不同网络下取到的指纹一致,用户侧不再出现陌生颁发者。
