浏览器地址栏仍提示「不安全」、锁被划掉或控制台 Mixed Content 告警------明明证书已装、后台也勾了全站 HTTPS------这和今天槽位里写过的表单「提交成功但收不到邮件」、「建立数据库连接时出错」,以及登录 Cookie/CDN 重定向环、502/503、PHP 白屏、WP-Cron、媒体上传、固定链接 404、Woo 支付回调不是一类故障。PHP 与数据库多半正常,卡在 页面仍在拉 http:// 资源(混合内容)、证书链不完整、强制 HTTPS/HSTS 未落地,或 CDN SSL 模式与源站不一致。
更稳的顺序是:先分清是 混合内容 / 证书链残缺 / 未强制跳转 / CDN SSL 模式错配 / 缓存里旧的 http URL → 用开发者工具清出所有 http:// 子资源 → 核证书链与中间证书 → 再开强制跳转与 CDN Full(Strict)。别一上来就重签证书掩盖定界,也别在没清混合内容前反复 Purge CDN。
先分清:混合内容 vs 证书链不完整 vs 未强制跳转 vs CDN SSL 错配 vs 旧 URL 缓存
「HTTPS 后仍不安全 / 锁被划掉」常见落在五条线上,别和 SMTP、数据库连接、登录重定向混着改:
- 混合内容(Mixed Content) :文档是
https://,但图片、脚本、CSS、字体、iframe 仍是http://。现代浏览器会拦截主动混合内容(脚本等),被动混合内容(图片等)也会让锁变黄或划掉,控制台直接写Mixed Content。 - 证书链不完整:叶证书在,但缺中间证书;部分客户端(老 Android、部分企业代理、部分 CDN 回源校验)校验证书失败,表现成「不安全」或间歇性警告。
- 未做强制跳转 / HSTS :用户仍可经
http://进入,或书签/外链走明文;浏览器对明文入口直接标「不安全」。 - CDN / 反代 SSL 模式错配:边缘对访客是 HTTPS,回源却是 Flexible / 仅 HTTP,或源站自签与「Full Strict」不匹配,导致回源失败、循环跳转或证书告警。
- 数据库 / 缓存里残留 http URL :
siteurl/home、文章正文、小工具、Elementor/页面构建器 JSON、对象缓存与全页缓存仍吐出旧的http://链接。
先记下:控制台有没有 Mixed Content、证书查看器里链是否完整、是否只经 CDN 域名异常、改证书前后是否清过全站缓存。再决定是改内容 URL 还是改证书/CDN。
第一步:用开发者工具清出所有 http 子资源(混合内容)
能复现「锁被划掉 / 不安全」的页面上:
- 打开开发者工具 → Console ,过滤
Mixed/http://;再看 Network ,按 URL 列排序或过滤http://,标出图片、脚本、样式、字体、XHR。 - 典型来源:
- 文章/产品正文里写死的
http://你的域名/wp-content/uploads/...; - 主题/小工具/自定义 HTML 中的外链脚本与字体;
- 页面构建器(Elementor 等)历史数据里的绝对 http URL;
- 第三方统计、客服挂件、地图 iframe 仍给 http 地址。
- 文章/产品正文里写死的
- 站点级:在
wp-admin→ 设置 → 常规,确认「WordPress 地址」与「站点地址」均为https://;用可靠的搜索替换(含序列化安全)把库内http://你的域名换成https://你的域名,先备份。 - 一次只处理一类资源(先本域 uploads,再主题静态,再第三方),每改一类硬刷新(禁用缓存)看锁是否恢复。
- 主动混合内容(script)被拦时,功能会坏;被动混合内容(img)更多只影响锁------两者都要清,不要只盯脚本。
- 若 Network 里看不到 http,但锁仍异常:看是否被 Service Worker / 扩展改写,换无痕窗口;并确认看的是「文档」那一行的最终 URL 方案是 https。
预期:Console 无新增 Mixed Content,Network 文档与子资源方案均为 https;锁恢复或警告消失。仍报证书类错误则进第二步,而不是继续改主题皮肤。

第二步:核证书链、中间证书与浏览器「证书查看器」
混合内容清干净后,地址栏仍警告时:
- 点锁 /「不安全」→ 证书 ,看颁发给谁、是否匹配当前域名(含 www / 裸域 / 多 SAN)、有效期、以及 证书路径 / 链 是否到信任根。
- 主机面板或 ACME 客户端(Let's Encrypt 等)常只装叶证书;缺中间证书时,部分客户端失败、部分桌面浏览器却「看起来正常」------以证书路径完整性为准,不要只信本机 Chrome。
- 用面板「重装证书 / 完整链」、或按 CA 文档补上 intermediate;CDN 侧若「自带证书 / 通用证」与源站证不同,分别查看访客侧 与回源侧两段。
- 自签、过期、域名不匹配、仅 IP 访问:都会稳定触发不安全提示;生产应用公信 CA,并把跳转统一到证书覆盖的主机名。
- 生产注意:换证书后同步刷新 CDN/负载均衡上的证书对象,避免边缘仍握旧证。
- 通配符证与多 SAN:确认当前主机名落在证书覆盖范围内;临时用 IP 或未列入 SAN 的测试域名访问,浏览器报不安全是预期现象,不要据此误判生产证「坏了」。
预期:证书路径完整、域名匹配、有效期内;不同网络/设备抽检不再报证书错误。若仅经 CDN 异常,进入 CDN SSL 与强制跳转。
第三步:强制 HTTPS 跳转、HSTS 与 CDN SSL 模式
源站证书无误、仍可被 http 入口或错误回源拖成「不安全」时:
- 在主机/Nginx/Apache 或面板打开 强制 HTTPS :把
http://301/302 到https://同路径;确认不会与 WordPress 插件层强制 SSL、CDN 层跳转叠成环。 - HSTS(
Strict-Transport-Security)仅在确认全站 https 稳定后再开;先短max-age观察,再加长。误开且证书有问题时,修复窗口会更麻烦。 - CDN SSL 模式常见档位(名称因厂商而异):
- 仅访客 HTTPS、回源 HTTP(Flexible 类):省事但回源明文,且易与源站强制 https 打架;
- Full:回源 HTTPS,但可能接受源站自签;
- Full Strict:回源 HTTPS 且校验证书------生产更稳妥,要求源站证书合法。
- 模式与源站不一致时,常见症状是循环跳转、522/525 类回源错,或浏览器侧锁异常。改模式后 Purge 全页与相关缓存,再测。
- 关于边缘证书、回源 SSL 模式、缓存里残留的 http 资源如何与源站强制跳转对齐,可对照 WordPress CDN 与 HTTPS 排查要点 把「浏览器看到的锁」「边缘证书」「回源校验」分成三层验证,再决定是改 CDN 模式还是清源站 URL。
预期:http 入口稳定跳到 https;CDN 模式与源站证书匹配;Purge 后前台锁正常。仍有个别页锁异常,查该页缓存与构建器 JSON。

第四步:缓存、页面构建器与第三方资源残留
证书与跳转都正常、仅个别模板「不安全」时:
- 清全页缓存、对象缓存、CDN 缓存;避免旧 HTML 继续输出 http 资源地址。
- 页面构建器:重新保存关键落地页,或按其「URL 替换 / Replace URL」工具处理;只改数据库根 URL 有时碰不到 JSON 字段里的绝对路径。
- 第三方:统计、客服、地图、字体 CDN 若只提供 http,换官方 https 地址或同源代理;拦不住的外链脚本宁可暂时移除,也不要留主动混合内容。
- Service Worker / PWA:若曾缓存 http 响应,更新或注销 SW 后再测无痕窗口。
- 多语言 / 多站点:逐个站点核
home/siteurl与证书 SAN,避免子站仍走 http。 - 改完后保留一份「改前 URL 样本 / 改后 Network 截图时间戳」,便于回滚构建器或替换范围过大时对照。
预期:无痕窗口下关键模板锁正常;Network 无 http 子资源;构建器页与普通文章一致。
验证方法
- Console 无 Mixed Content;Network 中文档与本域子资源均为 https。
- 证书查看器:域名匹配、链完整、有效期内;抽检非本机网络。
http://你的域名/访问应 301/302 到 https 同路径,无跳转环。- CDN SSL 为与源站匹配的 Full / Full Strict(或厂商等价档);Purge 后锁状态稳定。
- 无痕窗口抽检首页、文章页、含构建器的落地页;锁不再被划掉,地址栏无「不安全」。
- 关键第三方脚本与字体请求亦为 https;无被拦的主动混合内容导致功能缺失。
小结
全站 HTTPS 后仍显示「不安全」或锁被划掉时,按 混合内容 → 证书链 → 强制跳转与 CDN SSL 模式 → 缓存/构建器/第三方残留 推进,每次只改一层并保留回滚。把它和 SMTP 投递、数据库连接、登录重定向、502 网关区分开,能少走很多「反复重签证书却怎么也绿不了锁」的弯路。DEVDIY 实务里把「浏览器锁、边缘证书、回源校验」三层分开记一笔,下次换证或切 CDN 时能直接对备忘,而不是从零猜。