# DLG_FLAGS_SEC_CERT_CN_INVALID：IE 和兼容模式下的证书域名错误

> DLG_FLAGS_SEC_CERT_CN_INVALID 是 IE 和旧版 Edge 的“证书域名不符”错误码，如今多见于 IE 模式、360 兼容模式和老软件。原因和修法。

Source: https://ssl.sh/zh/errors/dlg-flags-sec-cert-cn-invalid/
Last updated: 2026-11-10

**DLG_FLAGS_SEC_CERT_CN_INVALID 的意思是：证书是签给另一个域名的，不是你打开的这个。** 这是 Internet Explorer 和旧版 Edge 对 Chrome 所说的 `NET::ERR_CERT_COMMON_NAME_INVALID` 的叫法。如今主要出现在 Edge 的 IE 模式、老的 Windows 软件，以及 360 安全浏览器、QQ 浏览器等双核浏览器的兼容模式里。

## 先判断是网站的问题还是你电脑的问题

证书里没有你访问的域名，就是网站的问题；证书覆盖了，就检查你输入的地址。用 [SSL 检测](https://ssl.sh/zh/tools/ssl-checker/) 看证书覆盖了哪些域名：

```bash
curl ssl.sh/example.com
```

IE 模式下的老系统经常用内网短名（`http://oa`）或 IP 地址打开，这些名字不会出现在任何证书里。替别的网站应答的代理和 Wi-Fi 认证页也会导致这个错误。

## 原因

访问的域名不在证书的 SAN 列表里是最常见的原因；老系统用短名或 IP 访问、IIS 绑错证书也会触发。

### 1. 域名不在 SAN 列表里

证书覆盖 `www.example.com`，页面或软件打开的却是 `example.com`，或者某个内部别名。查看证书里的域名：

```bash
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
  | openssl x509 -noout -ext subjectAltName
```

### 2. 老系统用短名或 IP 访问

多年前配置的业务系统常常访问 `https://appserver` 或 `https://203.0.113.10`。要么把这些名字加进证书（只能用内部 CA，公开 CA 不给内网名签证书），要么把系统改成用完整域名访问。

### 3. IIS 绑定了错误的证书

网站的 HTTPS 绑定用的是另一张证书，或者没开 SNI，服务器出示的是默认绑定的证书。到 IIS 管理器 → 网站 → 绑定里检查。

### 4. 被拦截或遇到 Wi-Fi 认证页

替真实网站应答的设备会出示它自己的证书。换个网络对比。

## 在各浏览器/系统上的样子

| 浏览器 | 显示内容 |
|---|---|
| IE / Edge IE 模式 / 360 兼容模式 | “此网站的安全证书有问题。”，并说明证书是为其他网站地址颁发的；错误码本身会出现在日志和部分软件的弹窗里 |
| 旧版 Edge（EdgeHTML） | 提示站点不安全，代码相同 |
| Chrome / 新版 Edge / 360 极速模式 | [NET::ERR_CERT_COMMON_NAME_INVALID](https://ssl.sh/zh/errors/net-err-cert-common-name-invalid/) |
| Firefox | [SSL_ERROR_BAD_CERT_DOMAIN](https://ssl.sh/zh/errors/ssl-error-bad-cert-domain/) |

## 站长怎么修

修法是把用户和软件实际用到的每个域名都签进证书，并在 IIS 上给每个主机名绑定正确的证书。

**1. 把用户和软件实际用到的域名都签进证书：**

```bash
sudo certbot certonly --nginx -d example.com -d www.example.com
```

**2. IIS 上**给每个主机名绑定正确的证书，多个 HTTPS 站点共用一个 IP 时勾选“需要服务器名称指示”：

```powershell
New-WebBinding -Name "Example" -Protocol https -Port 443 -HostHeader "example.com" -SslFlags 1
```

然后在 IIS 管理器里给这个绑定选好证书。从阿里云、腾讯云下载证书时选 IIS 格式（PFX），导入到服务器的“个人”证书存储。

**3. 尽量摆脱对 IE 模式的依赖。** 基于 WinINet 的客户端对老配置更挑剔，也更难排查。其余 TLS 设置可参考 [Schannel 报错](https://ssl.sh/zh/errors/windows-schannel-errors/)，改完用 `curl ssl.sh/example.com` 复测。
