图片显示不出来,第一反应是证书出问题——这个方向多半就跑偏了。证书链接图片打不开这种故障,真正栽在证书本身的比例很小,更多时候是页面上引用的那张图压根不走 HTTPS,或者图片所在的那台机器、那个域名根本没配证书。我按遇到的频率排了排,有三处地方比证书更值得先翻。

证书链接图片打不开,先把混合内容揪出来
HTTPS 页面里塞一张 http:// 的图,这就是混合内容。地址栏的锁是绿的,页面照常渲染,唯独图片位置空一块,或者显示一个裂开的小图标。很多人一看锁还是绿的,就认定证书没毛病——对,证书确实没毛病,毛病出在那张图片的 URL 上。查起来不复杂,F12 打开网络面板,按协议排一下,看有没有 http 的请求,或者状态列直接写着 blocked。老站点从 http 换成 https 的时候最容易留这种尾巴:编辑器里粘的外链图床、老文章里硬编码的 http://、主题模板里写死的图片地址,一个个翻确实烦,但对症。
顺带提一句,加个 Content-Security-Policy: upgrade-insecure-requests 响应头,能让浏览器把 http 请求自动升级成 https 再试一次。但这只是临时补救,图片源站要是本身没有 https,升级过去照样 404 或者超时,换个姿势失败而已。救急可以,别当根治方案。
图片域名和主站不是同一张证书
现在图片基本不放主站了,对象存储、图床、CDN 独立域名,一个站挂四五个域名很正常。主站证书好好的,图片那个域名可能是证书过期没人管、只签了裸域名没签子域、或者干脆还停在 http。表现就是页面其它内容都正常,图片全红。这种时候你去查主站证书,查一天也查不出东西。
判断方法很笨但有效:把图片 URL 单独复制到浏览器里打开。能打开,说明图片域正常,问题在页面的引用方式;打不开,就看报错是证书错误还是 404。再顺手 curl 一下,看它返回 200、403,还是直接 SSL 握手就挂了:curl -I https://img.example.com/path/a.jpg 。还有一种更阴的情况,图片域名证书链不全,桌面浏览器能容忍,手机上某些系统直接不显示,用户跑来投诉说就你家网站图片打不开,你本地怎么测都是好的。
CDN 缓存和回源协议这一层
源站改完 HTTPS,CDN 那边还留着老配置——回源走 http、缓存里躺着旧版本的 http 资源,页面上引的还是那个 CDN 域名。这种故障特别有欺骗性:你本地刷新几下好了,用户那边还是坏的,因为命中的节点不一样。清缓存要清对层级,URL 刷新和目录刷新不是一回事,有的服务商还要等几分钟才生效,具体以服务商或官方页面说明为准。
另一个坑正好相反:CDN 开了 HTTPS,证书部署在 CDN 上,源站其实是裸的。用户看到的是 CDN 那张证书,一切正常。可你一旦临时绕开 CDN 直连源站测试,立马全崩,这时候别怀疑 CDN 坏了,是源站本来就没配。
防盗链误伤,图片被拒了还赖证书
这个最有意思。HTTPS 页面默认的 Referer 策略有时候带来源,有时候不带——跨域降级、页面 meta 里写了 no-referrer、浏览器隐私设置收紧,都会让 Referer 变空。图片服务器开着防盗链白名单,Referer 一空,直接 403。浏览器拿到 403 不显示图,那个位置就空着,好多人第一反应还是证书没配好。看状态码就明白,403 和证书一点关系没有。查法还是网络面板,看那张图的状态,403、401 就往防盗链、鉴权、签名过期这条线走。
三分钟定位,顺序别乱
先看那张图的实际 URL,右键复制图片地址,很多时候一复制就现原形。再看网络面板里它的协议和状态码。最后才轮到证书本身。证书真要查,也就三件事:有效期、证书链是否完整、域名是否匹配,openssl s_client -connect img.example.com:443 -servername img.example.com 能把链和有效期都打出来。别一上来就重签证书,签完发现还是打不开,白折腾一场。
还有个小细节,图片路径写成 //cdn.xxx/a.jpg 这种协议相对的写法,现在浏览器会跟着页面的协议走,看着省事,实际上把判断权交了出去,出问题更难查。老老实实写全 https:// 反而清楚。
什么时候真轮到证书背锅
也不能一杆子打死。证书过期、证书被中间人替换、服务器时间跑偏(系统时间停在几年前,证书校验直接失败)、SNI 没配对导致回的是默认站点证书——这些确实会让图片挂掉。区别在于:真证书出问题,一般整站都受影响,不只图片,而且浏览器会弹明显的警告页,或者控制台里一片红色证书错误。只挂图片、其它都正常,九成不是证书。
下次再碰上图片不显示,先把“证书”这两个字从脑子里挪开,按这个顺序走一遍:图片 URL 是不是 http、图片域名自己能不能打开、CDN 缓存清没清、状态码是不是 403。四步走完还没解决,再回头折腾证书也不迟。排查顺序搞对了,省下来的时间比反复重签证书多得多。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!