HTTPS里混着HTTP的东西,浏览器那个警告真能吓跑用户
很多站长以为装上SSL证书就完事了。结果网站顶部还是显示"不安全",或者图片不显示。问题多半出在"混合内容"上。
什么是混合内容
简单说,就是你的页面本身是HTTPS加载的,但页面里引用的某些资源——图片、脚本、样式、字体——还是用HTTP地址。
浏览器对这种页面会报警。轻则地址栏那个小锁没锁上,重则直接把HTTP的资源拦掉不显示。
我有个站就出过这事。证书装了,但模板里的图片地址还是老HTTP的,结果一大半配图在浏览器里全是白框。
为什么这个坑这么常见
因为网站里的资源地址,很多是历史遗留的。
早期网站模板、文章正文里插的图、外部引用的字体库,这些地址在写的时候都是HTTP。后来全站上了HTTPS,这些老地址没跟着改。
还有一种是直接复制别人的内容,里面带的图片链接是人家站上的HTTP地址。这种外链资源你自己控制不了,最容易出问题。
怎么找出所有的混合内容
手动一个个找太慢,我一般用两个办法:
- 浏览器开发者工具,看控制台里的警告,它会列出所有被拦的HTTP资源
- 用在线检测工具,输入网址,自动扫一遍混用情况
这两个结合起来,基本能揪全。重点看图片和脚本,这两类最常出问题。
找到了怎么改
自己站上的资源,直接把地址里的http改成https。数据库里存的老地址,用工具批量替换一下就行。
外链资源有两个处理办法:能下载到自己服务器上的,就下下来本地化;下不了的,换成对方站点的HTTPS地址,或者干脆去掉。
我倾向于能本地化就本地化。别人的资源哪天挂了、换了地址,你的页面就跟着出问题,还不如自己管着。
改完还要做两件事
一是全站扫一遍确认。别只改首页,内页、文章的配图都得扫。很多混合内容藏在老文章里,最容易漏。
二是配置好自动跳转。让所有HTTP访问自动跳到HTTPS,避免用户从老链接进来时还在HTTP上。
还有个细节:HSTS可以开启。开了之后,浏览器会强制用HTTPS访问你的站,安全性更高。不过开了要小心,配错了会比较难回退,建议先想清楚再开。
最后叮嘱一句
混合内容这东西,不会让你的站彻底打不开,但会持续地让用户心里打鼓。那个"不安全"的标记,对转化率的影响很实在。
上HTTPS这事,装证书只是一半,把站里所有资源地址统一了才算做完。花点时间扫一遍,比让用户带着疑虑离开强。
CDN和反向代理也可能带来混用
还有种隐蔽的情况:站本身是HTTPS,但经过CDN或者反向代理之后,页面上返回的资源地址变成HTTP了。
这种问题你查源代码看不出来,得看浏览器实际加载的。排查的时候一定要在真实环境里测,别只看编辑器里的源码。
我遇到过一次,折腾了很久才定位到是代理配置的问题。后来就养成习惯,配完代理一定用浏览器的开发者工具看一遍所有请求,确保全都是HTTPS。
本文网址:https://www.seobole.com/article/1053.html
转载请注明出处。文章内容为作者原创或采编,不代表本站立场,如有侵权请联系 a5b5_su@163.com。