HTTPS页面显示“连接不安全”大概率是存在混合内容,即HTTP资源混入HTTPS页面;需通过浏览器控制台、Security面板或在线工具定位HTTP引用,并统一改为HTTPS或协议相对路径,再通过清除缓存、CSP头及CI/CD扫描验证修复。

HTTPS 页面仍显示“连接不安全”,大概率不是证书没装好,而是页面里悄悄混入了 HTTP 资源——也就是混合内容(Mixed Content)。这类问题隐蔽性强,浏览器控制台常只报一两行警告,但足以触发全站降级为“不安全”状态。
检查混合内容是否真实存在
打开网页后按 F12,切换到 Console 或 Security 标签页:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 看到类似 “Mixed Content: The page at 'https://xxx' was loaded over HTTPS, but requested an insecure script/image/iframe…” 的提示,说明已确认存在混合内容
- Chrome 的 Security 面板会直接列出所有被阻止的 HTTP 资源,并标注是主动型(Active)还是被动型(Passive)
- 用在线工具扫描整站:如 Why No Padlock? 或 Geopeg Mixed Content Scanner,可快速定位所有 HTTP 引用位置
定位并修复资源协议引用
常见 HTTP 源头包括静态文件、第三方脚本、API 接口、重定向跳转等:
-
HTML 中硬编码的 HTTP 链接:搜索
<img src="http://、<script src="http://、<link href="http://等,统一改为https://或更稳妥的协议相对写法//example.com/path -
PHP/模板中拼接的 URL:检查
echo 'http://' . $_SERVER['HTTP_HOST']类逻辑,应改用$_SERVER['HTTPS'] === 'on'判断协议,或直接使用location.protocol前端判断 -
CDN 或第三方服务未启用 HTTPS:比如调用的是
http://cdn.jsdelivr.net,需确认该 CDN 是否支持 HTTPS;若仅提供 HTTP,则必须更换为支持 HTTPS 的服务商或镜像 -
后端 API 返回的链接含 HTTP:例如文章内容字段里存了
<img src="http://upload.example.com/1.jpg">,需在输出前统一替换或在存储时强制转为相对路径
验证与预防机制
修复后不能只靠肉眼点开看,要建立可复现的验证闭环:
- 清除浏览器缓存 + 硬性刷新(Ctrl+Shift+R),再检查 Console 是否仍有混合内容警告
- 在 Apache 配置中添加响应头:
Content-Security-Policy: block-all-mixed-content,让浏览器自动拦截任何残留的 HTTP 请求(注意:此头仅对新访问生效,不影响已加载页面) - 在 CI/CD 流程中加入静态扫描:用 mixed-content-scan 工具对构建产物做自动化检测
- 将所有内部资源默认设为相对协议或绝对 HTTPS,避免在开发环境用 HTTP、上线才改,减少人为遗漏

















