证书与 HTTPS
要让访客通过 HTTPS 安全访问你的服务,你需要 TLS 证书。控制面可以自动申请、续期和管理证书,不需要手动操作命令行。
三种证书来源
| 方式 | 适合场景 |
|---|---|
| 自动签发(HTTP-01) | 有域名、能开放 80/443 端口。推荐首选 |
| DNS-01 验证 | 无法开放 80 端口,或需要通配符证书(*.example.com) |
| 手动上传 | 已有商业证书或自签证书 |
证书中心
进入 基础设施 → 证书中心。中心内一级切换 公网证书 与 内部 PKI 两个安全域。公网域管理 HTTPS/ACME 与手动上传的业务证书;创建时选一个模板,系统会帮你填好大部分设置:
| 模板 | 说明 |
|---|---|
| 网站 HTTPS | 给 HTTP 代理规则使用 |
| 手动上传证书 | 粘贴已有 PEM 证书、私钥和可选 CA 链 |
Relay 的 tunnel identity、内部 CA、轮转和撤销属于另一安全域,通过证书中心顶部切换到 内部 PKI 管理。侧栏只保留「证书中心」一个入口,不再平行挂独立 PKI 菜单。


HTTP-01 自动签发(推荐)
最简单的方式。创建 HTTPS 入口的 HTTP 规则后,Agent 自动完成申请,无需额外配置。
前置条件:
- 域名已解析到运行规则的 Agent 节点
- Agent 节点 80 端口可访问(用于验证域名所有权)
- 443 端口放行(提供 HTTPS 服务)
如果申请失败,去证书页面点击重试。
DNS-01 验证(Cloudflare)
以下情况需要用 DNS-01:
- 节点无法开放 80 端口(内网、端口被占用)
- 需要通配符证书(
*.example.com) - 给内网域名签发证书
在控制面设置 ACME_DNS_PROVIDER=cf。签发和续期会按证书域名向统一解析入口取 Token:已为该域配置的 cloudflare-dns 映射优先;未命中时才使用环境变量全局 Token。
ACME_DNS_PROVIDER=cf
CF_TOKEN=your-cloudflare-api-tokenACME_DNS_PROVIDER=cf 且存在环境变量 Token 或 已安装并可提供映射的 cloudflare-dns 插件时,DNS-01 才会启用。某个域名既无映射又无环境变量 Token 时,该次签发或续期失败。
获取 Cloudflare API Token
- 登录 Cloudflare Dashboard
- 进入 My Profile → API Tokens → Create Token,选 Custom Token
- 配置权限:
| 权限 | 用途 |
|---|---|
| 区域 / 区域 / 读取 | 读取域名区域信息 |
| 区域 / DNS / 读取 | 读取现有 DNS 记录 |
| 区域 / DNS / 编辑 | 创建和删除验证用的临时记录 |
- 区域资源选 特定区域 / 你的域名
- 不限制客户端 IP

环境变量全局 Token 只在解析未命中时作为兜底。支持多种名称,按优先级依次尝试:CLOUDFLARE_DNS_API_TOKEN > CF_DNS_API_TOKEN > CF_TOKEN > CF_Token。填任意一个即可,同时设置了多个时优先级高的生效。映射命中时不会再混用这份全局 Token。
Token 安全
CF_TOKEN 能操作 DNS 记录,不要提交到仓库。定期轮换 Token。更多安全建议见 安全最佳实践。
手动上传证书
已有证书时直接上传:
- 创建证书时把「证书来源」选为 手动上传
- 填入证书 PEM、私钥 PEM,可选填 CA 链 PEM
- 自签证书需勾选「标记为自签名证书」
手动上传的证书不会自动续期
到期前需要手动更新。优先使用自动签发。
内部 Relay PKI
生产 Relay mTLS 使用内部 PKI 签发的 Agent/listener tunnel identity,不从公网证书域创建,也不能用公网 ACME 或普通手动上传证书替代。请在 证书中心 → 内部 PKI 查看 identity、CA generation、有效期、轮转、撤销和受保护备份。既有 Relay CA/Pin 配置仅在维护升级激活前保留;完成激活后不能作为降级或恢复路径。详见内部 PKI 升级与运维和 Relay 协议内幕。
自动续期
Let's Encrypt 证书有效期 90 天。控制面每 24 小时检查一次,对临近到期的证书自动续期。
DNS-01 续期需要该域名解析到的 Token(映射或环境变量兜底)持续有效。Token 过期会导致续期失败。
HTTP/3
NRE_HTTP3_ENABLED=true开启后 HTTPS 入口同时支持 HTTP/3(QUIC),不影响 HTTP/1.1 和 HTTP/2。需要客户端和浏览器支持。