← 全部文章 运维踩坑

浏览器提示「你的连接不是专用连接」

2023 年 7 月 4 日 · 2 分钟读完

目录
  1. 临时办法:thisisunsafe
  2. 为什么会提示
  3. 延伸

用 Edge 访问一些内网设备或测试服务器的 HTTPS 页面时,提示「你的连接不是专用连接」,有时连「继续访问」的按钮都没有,进不去。

临时办法:thisisunsafe

在这个提示页面上,直接用键盘敲 thisisunsafe:

  1. 把输入法切到英文;
  2. 鼠标点一下页面空白处;
  3. 依次按键 thisisunsafe(不是在地址栏里输入,屏幕上不会有任何显示),敲完页面会自动刷新进入。

这是 Chromium 内核(Chrome、Edge)留的一个后门,会跳过这个网站的证书检查。

只对自己确定安全的内网设备用。这个提示的本意是「对方的身份无法验证,可能有人在中间冒充」,对外网的网站这样绕过,等于放弃了 HTTPS 的保护。

为什么会提示

HTTPS 要求服务器出示一张证书,浏览器检查三件事:证书是不是受信任的机构(CA)签发的、有没有过期、证书上的域名和你访问的地址是否一致。任何一项不通过就会拦截。常见原因:

原因 典型场景 怎么修
自签名证书 内网设备、开发环境,证书是自己生成的 把证书(或自建的根证书)导入电脑的「受信任的根证书颁发机构」
电脑时间不对 工控机 BIOS 电池没电,时间回到了几年前 改对系统时间,所有网站一下子都好了
证书过期 网站忘了续期 网站管理员续期;自己的网站用自动续期
域名不匹配 证书签给 example.com,却用 IP 访问 用证书上的域名访问
中间代理 公司网络的上网行为管理会替换证书 按公司要求安装它的根证书

点地址栏左边的「不安全」→ 证书无效,能看到具体是哪一项出了问题(错误码如 NET::ERR_CERT_AUTHORITY_INVALID 表示不受信任,NET::ERR_CERT_DATE_INVALID 表示时间不对)。

延伸

  • 自己的网站用免费证书:Let’s Encrypt 提供免费证书,90 天有效,用工具自动续期。像 Caddy 这样的 Web 服务器配置好域名就会自动申请和续期,完全不用管,我的 网站矩阵 就是这么做的。
  • 内网自签名证书:用 mkcert 一条命令生成本地 CA 并安装到系统信任列表,再给内网 IP 或域名签发证书,浏览器就不再提示。
  • 程序里访问自签名 HTTPS:C# 的 HttpClient 同样会校验证书,报 AuthenticationException。测试时可以设置 HttpClientHandler.ServerCertificateCustomValidationCallback 放行,但正式环境要用受信任的证书。HttpClient 的用法见 WinForm 里的简单 HTTP 服务器与客户端。
  • HSTS:网站开启了 HSTS 时,浏览器不允许任何形式的跳过,连 thisisunsafe 也可能不管用,只能把证书问题本身修好。

# HTTPS # 证书 # 浏览器

原文首发于 blog.csdn.net