什么是混合内容?是指:一个通过安全的 HTTPS 连接加载的网页,其中却包含了通过不安全的 HTTP 协议加载的资源(如图片、视频、样式表、脚本等)。
这会产生安全风险,因为虽然主页面是加密的,但其中不安全的元素可能被攻击者篡改,从而窃取信息或植入恶意代码。

Chrome 将混合内容分为两类:
- 被动/显示型混合内容:如图片、视频、音频,Chrome 默认会加载这些内容,但会在地址栏显示“不安全”警告。
- 主动型混合内容:如脚本、iframe、样式表、XMLHttp请求等,这些风险极高,Chrome 默认会直接阻止加载,这常常导致网页功能不正常。
作为网站访问者(普通用户)
如果您遇到因混合内容被阻止而导致网页功能异常,您可以临时允许加载,但请注意,这会降低您的安全性,请仅在信任该网站且必要时使用。
通过地址栏图标临时允许(适用于当前网站)
这是最推荐的方法,因为它只对当前网站本次访问生效。
- 访问出现问题的 HTTPS 网站。
- 点击地址栏左侧的“不安全”或“锁形”图标。
- 在弹出的菜单中,点击 “网站设置”。
- 在打开的设置页面中,找到 “不安全内容” 选项。
- 将其从默认的 “屏蔽(默认)” 更改为 “允许”。
- 返回并刷新网页,混合内容应该被加载了。
注意:此设置通常仅对该网站、本次浏览器会话有效,重启浏览器后可能会重置。
禁用全站的混合内容屏蔽(不推荐)
强烈不建议这样做,它会让你访问的所有网站都面临风险。
- 在 Chrome 地址栏输入:
chrome://flags/#unsafely-treat-insecure-origin-as-secure - 找到该实验性功能选项,将禁用列表改为启用,并在下方的文本框中输入需要允许混合内容的网站地址(
http://example.com)。 - 重启 Chrome。
警告:此方法主要用于开发者测试,普通用户请勿使用。
作为网站所有者或开发者
正确的做法是从根本上修复混合内容问题,让您的网站完全通过 HTTPS 提供服务。
修复步骤:
- 启用全站 HTTPS:确保您的网站可以通过
https://正常访问,并获得有效的 SSL/TLS 证书(许多主机提供商或 Let‘s Encrypt 提供免费证书)。 - 更新资源链接:将网页中所有引用资源的链接(如图片、CSS、JS 文件、API 接口等)的协议头
http://改为以下两种方式之一:- 使用相对协议:
//example.com/image.jpg(推荐),这样资源会自动使用与主页面相同的协议(HTTP 或 HTTPS)。 - 直接使用 HTTPS:
https://example.com/image.jpg。
- 使用相对协议:
- 更新外部资源:如果您引用了第三方库(如 jQuery、Bootstrap、字体等),请确保使用它们提供的 HTTPS 版本链接。
- 使用浏览器开发者工具排查:
- 打开 Chrome 开发者工具 (F12)。
- 进入 “控制台” 面板,被阻止的混合内容会显示为错误信息,并标明是“被动内容”还是“主动内容”。
- 进入 “安全” 面板(在开发者工具中可能需在顶部栏的
>>里找到),这里会清晰地列出所有不安全的资源及其具体URL。
- 安全策略(CSP):在服务器端设置
Content-Security-Policy头部,可以帮助浏览器识别和报告混合内容问题,使用upgrade-insecure-requests指令,让浏览器自动将 HTTP 请求升级为 HTTPS。
检查和测试工具:
- Chrome 开发者工具的 “安全问题”面板(如上所述)。
- 在线工具如 Why No Padlock? 或 SSL Labs Server Test 可以全面扫描您的网站并列出混合内容问题。
| 您的角色 | 建议操作 |
|---|---|
| 普通用户 | 对信任的网站,通过 地址栏图标 -> 网站设置 -> 允许不安全内容 临时解决,优先考虑向网站管理员反馈问题。 |
| 网站开发者/管理员 | 必须修复根源:将所有资源链接更新为 HTTPS 或相对协议,使用开发者工具进行排查,最终实现全站 HTTPS。 |
核心原则:浏览器阻止混合内容是一项至关重要的安全功能,最佳实践是升级网站以完全消除混合内容,而不是让用户降低安全设置。