Microsoft Edge 强制HTTPS跳转且拒绝自签名证书的本地开发问题
本地开发站点在Edge 89报错证书无效/强制HTTPS的排查修复步骤
前置说明:其他浏览器(Chrome、Firefox)可正常访问,说明站点web.config配置、自签名证书本身、IIS绑定规则均无问题,故障根源全部为Edge本地的残留配置,无需改动现有站点与证书设置,可直接恢复到之前的正常状态,不影响后续生产环境部署的配置衔接。
核心排查修复步骤(按优先级操作)
- 清理注册表中Edge策略级HSTS残留
老版本Chromium内核Edge(含89.0.774.45)会将曾经触发过HSTS的域名同步写入本地系统策略,这类记录不会被edge://net-internals/#hsts页面的删除操作清除,是net-internals删除HSTS后问题仍存在的最常见原因。操作方式:- 按下
Win+R输入regedit打开注册表编辑器 - 定位路径:
计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge - 检查路径下所有和HSTS、证书固定相关的项(包括
HSTSPolicyBypassList、HSTSConfigDomains、CertificateEnrollmentSettings),删除所有包含local-prodject.mydomain.com的条目,注意不要改动其他正常站点对应的配置项
- 按下
- 清除Edge本地证书固定(Public Key Pinning)缓存
即使重新签发了自签名证书,Edge本地缓存的旧证书公钥指纹仍会被用于校验,触发证书通用名不匹配的误报。操作方式:- 关闭所有Edge窗口,在任务管理器中结束所有残留的
msedge.exe后台进程 - 打开Edge的证书管理面板(地址栏输入
edge://settings/privacy,下拉找到安全板块的“管理证书”入口) - 进入“受信任的根证书颁发机构”列表,找到为
local-prodject.mydomain.com签发的旧自签名证书条目,确认条目覆盖的域名仅包含问题站点后删除,不要删除其他正常本地站点共用的根证书
- 关闭所有Edge窗口,在任务管理器中结束所有残留的
- 删除Edge本地存储的HSTS持久化文件
edge://net-internals页面的删除操作仅清除内存中的HSTS记录,磁盘上的持久化配置文件仍会在重启后加载残留规则。操作方式:- 进入Edge用户数据目录:
%LOCALAPPDATA%\Microsoft\Edge\User Data\Default - 找到无后缀的
TransportSecurity文件,用记事本打开,搜索所有包含local-prodject.mydomain.com的配置段,整段删除后保存文件 - 重启Edge,进入
edge://net-internals/#hsts页面,在查询框输入local-prodject.mydomain.com,确认返回“Not found”结果
- 进入Edge用户数据目录:
- 验证Edge自动HTTPS跳转规则
89版本Edge对曾经访问过HTTPS的本地域名默认启用自动HTTPS-first跳转,即使无HSTS记录也会强制改写请求为HTTPS:- 地址栏输入
edge://settings/privacy,找到“安全”板块下的“自动升级到HTTPS”选项,临时关闭该开关 - 手动输入完整的HTTP站点地址(不要输入HTTPS前缀)测试访问
- 地址栏输入
无侵入兜底验证
如果以上操作完成后问题仍存在,可启动独立测试实例确认配置影响范围,完全不改动现有Edge的个人配置与站点设置:
- 按下
Win+R输入命令:msedge.exe --user-data-dir=%temp%\edge-test --allow-insecure-localhost - 在弹出的临时Edge窗口中访问目标站点,若可正常访问,说明故障完全来自原有Edge用户目录的残留缓存,无需调整站点、证书、web.config的任何配置,仅需清理对应残留文件即可恢复到昨日的正常工作状态。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

