能为 IP 地址(如 https://203.0.113.50)获取 SSL 证书吗? 可以——但 Let’s Encrypt 不支持,且有更好的替代方案。
哪些 CA 能为 IP 地址签发证书?
| CA | IP 地址证书 | 费用 |
|---|---|---|
| Let’s Encrypt | ❌ 不支持 | — |
| ZeroSSL | ✅ 通过 ACME(公网 IP) | 免费(有限制) |
| Google Trust Services | ✅ 通过 ACME | 免费 |
| DigiCert | ✅(仅 OV/EV) | 付费 |
| Sectigo | ✅ | 付费 |
| 自签名 | ✅ | 免费(浏览器警告) |
Let’s Encrypt 的 ACME 实现不验证 IP 地址——它只验证域名。这意味着 GetHTTPS 无法为 IP 地址签发证书。
为什么域名几乎总是更好
| IP 地址证书 | 域名证书 | |
|---|---|---|
| Let’s Encrypt 支持 | ❌ | ✅ |
| 免费选项 | 有限 | 无限(Let’s Encrypt) |
| 可更换服务器 | ❌ 绑定该 IP | ✅ 更新 DNS |
| 人类可读 | ❌ https://203.0.113.50 | ✅ https://example.com |
| CDN/负载均衡 | ❌ IP 变更则失效 | ✅ 基于 DNS 路由 |
| SEO | ❌ 无关键词价值 | ✅ 可品牌化 |
几乎在所有情况下,注册一个域名($10-15/年)并使用 Let’s Encrypt(免费)比获取 IP 地址证书更便宜、更灵活。
何时 IP 地址证书有意义
- 内部基础设施 —— 监控面板、管理界面、私有网络上未设置 DNS 的 API
- 物联网/嵌入式设备 —— 连接到固定 IP 且无法解析 DNS 的设备
- 开发/测试 —— 测试服务器上的快速 HTTPS,无需配置 DNS
- 遗留系统 —— 硬编码连接 IP 的应用
IP 地址证书的替代方案
选项 1:使用域名(推荐)
注册一个域名或子域名,指向你的 IP,获取免费的 Let’s Encrypt 证书。
# Example: point a subdomain to your IP
server.example.com → A record → 203.0.113.50
# Then get a certificate for server.example.com
费用:$0(如果你已有域名)到 $10-15/年(新域名)。
选项 2:自签名证书
用于内部且可接受浏览器警告的场景:
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=203.0.113.50" \
-addext "subjectAltName=IP:203.0.113.50"
注意 SAN 中的 IP: 前缀——不是 DNS:。
选项 3:nip.io 或 sslip.io(巧妙的 DNS 技巧)
这些免费服务提供解析到主机名中嵌入的 IP 的 DNS 记录:
203.0.113.50.nip.io → resolves to 203.0.113.50
然后你可以使用 GetHTTPS 配合 DNS-01 验证为 203.0.113.50.nip.io 获取 Let’s Encrypt 证书。域名不好看但功能正常。
选项 4:Cloudflare Tunnel
通过 Cloudflare 的隧道使用真实域名和自动 SSL 暴露基于 IP 的服务——无需公网 IP。
常见问题
为什么 Let’s Encrypt 不支持 IP 地址?
Let’s Encrypt 通过 DNS 或 HTTP 验证来验证域名所有权。IP 地址没有与域名相同的 DNS 所有权概念——验证模型不能干净地适用。其他 CA(ZeroSSL、Google Trust Services)已在其 ACME 实现中添加了 IP 支持。
能为 IP 地址使用通配符证书吗?
不能。通配符仅适用于 DNS 名称(*.example.com)。IP 地址没有子域名。
私有/内部 IP(192.168.x.x、10.x.x.x)呢?
没有公共 CA 会为私有 IP 地址签发证书——它们不是全局唯一的。对内部网络使用自签名证书或私有 CA。
能为公网 IP 获取免费证书吗?
ZeroSSL 和 Google Trust Services 通过 ACME 支持 IP 地址证书。不过免费套餐可能有限制。域名配合 Let’s Encrypt 更可靠且真正无限。