需依次启用混合内容、添加本地地址到受信任站点、禁用defender https检查并清除smartscreen缓存。具体操作包括:inetcpl.cpl中启用“显示混合内容”,添加http://localhost等至受信任站点;gpedit.msc或regedit禁用网络检查;最后清空smartscreen缓存及证书。

当你在Windows上运行自己开发的本地Web服务、调试内网管理后台,或打开未签名的内部HTML工具时,常会遇到页面被空白拦截、控制台报错“已阻止加载混合内容”、F12看到大量CSP策略拒绝记录,甚至直接跳转到“此网站不安全”的红色警告页——这不是浏览器问题,而是Windows内置的Web安全保护机制在主动干预HTTP/HTTPS混合加载、未验证证书、自签名SSL或本地host绑定的Web请求。
关闭Windows SmartScreen对网页内容的主动拦截
SmartScreen不仅管.exe下载,也深度介入IE/Edge内核的网页渲染链路,尤其对无有效TLS证书、使用localhost或127.0.0.1但端口非常规(如8080、3000)、或启用HTTP而非HTTPS的本地开发服务实施静默降级或强制重定向。
第一步:按 Win + R 输入 inetcpl.cpl 回车,打开“Internet属性”窗口。
第二步:切换到“安全”选项卡 → 点击“自定义级别…”按钮 → 拉到底部找到“显示混合内容”一项 → 将其设置为“启用”。【这是关键一步,不改此项,后续所有操作都无法让HTTP资源正常加载】
第三步:仍在此窗口中,切换到“隐私”选项卡 → 点击“高级” → 勾选“覆盖自动Cookie处理” → 在下方两个复选框中,均选择“接受” → 点击“确定”保存。
第四步:回到“安全”选项卡 → 点击“受信任的站点” → 点击“站点”按钮 → 在弹出框中输入你的本地地址,例如 http://localhost、http://127.0.0.1:3000 或 https://dev.internal(注意:不要带通配符,不要加端口以外的路径)→ 每输一个点一次“添加” → 全部加完后点击“关闭” → 再点“确定”退出主窗口。
禁用Windows Defender对Web流量的HTTPS解密监控
如果你启用了“Microsoft Defender防病毒”中的“网络检查”或“HTTPS检查”功能,它会主动在系统层安装根证书并劫持TLS握手,导致自签名证书被标记为“不受信任”,甚至使Fiddler/Charles等代理工具失效。该功能默认关闭,但部分企业镜像或IT策略可能已启用。
方法一:通过组策略关闭(仅限专业版/企业版)
按 Win+R 输入 gpedit.msc → 依次展开:计算机配置 → 管理模板 → Windows组件 → Microsoft Defender防病毒 → 网络检查 → 双击“启用网络检查” → 设为“已禁用” → 点击“确定”。
方法二:通过注册表强制关闭(家庭版可用)
按 Win+R 输入 regedit → 导航至:HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Network Inspection System → 新建 DWORD (32位) 值,命名为 DisableNetworkMonitoring → 双击修改数值数据为 1 → 关闭注册表编辑器。
⚠️ 注意:修改后需重启“Windows Defender Firewall”服务或重启电脑才生效,否则旧策略仍驻留内存。
清除IE/Edge遗留的SmartScreen URL信誉缓存
SmartScreen会将你访问过的URL哈希持久化存储在本地数据库中,即使你已关闭功能,历史拦截记录仍可能触发二次拦截。必须手动清空才能确保新访问的本地页面不被“记忆性误判”。
第一步:关闭所有IE、Edge、Chrome(因Chrome共享部分Windows网络栈策略)进程。
第二步:以管理员身份运行CMD或PowerShell → 执行以下命令:
netsh winhttp reset proxy
certmgr.msc → 在“受信任的根证书颁发机构”里查找并删除名称含“Microsoft Defender SmartScreen”或“WDSCert”的证书(如有)。
第三步:执行:del /f /q "%LOCALAPPDATA%\Packages\Microsoft.MicrosoftEdge_*\AC\#!123\INetCache\*" (该路径为Edge缓存,含SmartScreen元数据)→ 若提示权限不足,先在文件资源管理器中粘贴此路径,右键“属性→安全→编辑→赋予当前用户“完全控制”权限后再删。











