# IP 证书是什么？定义、例子与常见误区

> IP 证书是在 SAN 中写入 IP 地址的 TLS 证书，使客户端在直接通过 IP 访问服务器时也能验证其身份。

Source: https://ssl.sh/zh/glossary/ip-address-certificate/
Last updated: 2026-11-10

IP 证书在 [SAN](https://ssl.sh/zh/glossary/san/) 扩展中包含一个或多个 `iPAddress` 条目（IPv4 或 IPv6）。客户端访问 `https://203.0.113.10/` 时，会拿这个确切的地址与这些条目比对；写成 DNS 名称或写在 CN 里的 IP 都不算数。公共 CA 只能为申请者控制的公网地址签发，10.0.0.0/8、192.168.0.0/16 等私有或保留地址一律不行。另外，按 RFC 6066，客户端用 IP 直连时不会发送 SNI，所以服务器只能为该 IP 和端口返回默认证书。

## 为什么重要
有些服务根本没有域名：DNS over HTTPS 解析器、设备初始化页面、临时服务器和基础设施接口。自 2026-01-15 起，[Let's Encrypt](https://ssl.sh/zh/glossary/let-s-encrypt/) 通过 shortlived 配置文件正式提供 IP 证书，因此这类证书都是六天（160 小时）有效期，必须自动续期。验证方式只能用 [http-01](https://ssl.sh/zh/glossary/http-01/) 或 tls-alpn-01，因为 dns-01 依赖 DNS 记录，而单纯的 IP 地址没有可供验证的 DNS 记录。云服务器的内网地址、VPC 地址无法获得公网证书，应改用私有 CA。

## 例子
```bash
openssl s_client -connect 203.0.113.10:443 </dev/null 2>/dev/null \
  | openssl x509 -noout -ext subjectAltName
```

```text
X509v3 Subject Alternative Name:
    IP Address:203.0.113.10
```

## 常见误区
- **把 IP 写进 CN 就行。** 客户端只拿 IP 与 SAN 中的 `iPAddress` 条目比对。
- **可以为 192.168.1.1 申请公网证书。** 私有和保留地址无法由公共 CA 验证，应使用私有 CA。
- **IP 证书也覆盖解析到该 IP 的域名。** 每个名称都要单独列出，IP 条目只匹配直接用 IP 发起的连接。

## 相关术语

- [SAN](https://ssl.sh/zh/glossary/san/): SAN 即主体备用名称，是 X.509 证书中列出其适用的所有域名、IP 地址等身份的扩展，客户端按它校验主机名。
- [短期证书](https://ssl.sh/zh/glossary/short-lived-certificate/): 短期证书是有效期只有几天的 TLS 证书，靠快速过期而不是吊销来限制被盗证书可被滥用的时间。
- [HTTP-01](https://ssl.sh/zh/glossary/http-01/): HTTP-01 是一种 ACME 验证方式，客户端通过 80 端口以普通 HTTP 提供 CA 指定的令牌内容来证明域名控制权。
- [TLS-ALPN-01](https://ssl.sh/zh/glossary/tls-alpn-01/): TLS-ALPN-01 是一种 ACME 验证方式，服务器在 443 端口针对 acme-tls/1 协议出示一张特殊证书来证明域名控制权。
- [Let's Encrypt](https://ssl.sh/zh/glossary/let-s-encrypt/): Let's Encrypt 是由非营利组织 ISRG 运营的免费、自动化证书颁发机构，通过 ACME 协议签发域名验证型 TLS 证书。
- [ACME Profile](https://ssl.sh/zh/glossary/acme-profile/): ACME Profile 是 CA 在 ACME 目录中公布的命名证书模板，客户端下单时选择它来决定证书的有效期和内容。
- [私有 CA](https://ssl.sh/zh/glossary/private-ca/): 私有 CA 是企业为自己的系统和设备搭建的证书颁发机构，其根证书只在企业主动安装的设备上受信任。
