Skip to content

证书与 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 自动完成申请,无需额外配置。

前置条件:

  1. 域名已解析到运行规则的 Agent 节点
  2. Agent 节点 80 端口可访问(用于验证域名所有权)
  3. 443 端口放行(提供 HTTPS 服务)

如果申请失败,去证书页面点击重试。

DNS-01 验证(Cloudflare) ​

以下情况需要用 DNS-01:

  • 节点无法开放 80 端口(内网、端口被占用)
  • 需要通配符证书(*.example.com)
  • 给内网域名签发证书

在控制面设置 ACME_DNS_PROVIDER=cf。签发和续期会按证书域名向统一解析入口取 Token:已为该域配置的 cloudflare-dns 映射优先;未命中时才使用环境变量全局 Token。

ini
ACME_DNS_PROVIDER=cf
CF_TOKEN=your-cloudflare-api-token

ACME_DNS_PROVIDER=cf 且存在环境变量 Token 或 已安装并可提供映射的 cloudflare-dns 插件时,DNS-01 才会启用。某个域名既无映射又无环境变量 Token 时,该次签发或续期失败。

获取 Cloudflare API Token ​

  1. 登录 Cloudflare Dashboard
  2. 进入 My Profile → API Tokens → Create Token,选 Custom Token
  3. 配置权限:
权限用途
区域 / 区域 / 读取读取域名区域信息
区域 / DNS / 读取读取现有 DNS 记录
区域 / DNS / 编辑创建和删除验证用的临时记录
  1. 区域资源选 特定区域 / 你的域名
  2. 不限制客户端 IP

Cloudflare API Token 权限

环境变量全局 Token 只在解析未命中时作为兜底。支持多种名称,按优先级依次尝试:CLOUDFLARE_DNS_API_TOKEN > CF_DNS_API_TOKEN > CF_TOKEN > CF_Token。填任意一个即可,同时设置了多个时优先级高的生效。映射命中时不会再混用这份全局 Token。

Token 安全

CF_TOKEN 能操作 DNS 记录,不要提交到仓库。定期轮换 Token。更多安全建议见 安全最佳实践。

手动上传证书 ​

已有证书时直接上传:

  1. 创建证书时把「证书来源」选为 手动上传
  2. 填入证书 PEM、私钥 PEM,可选填 CA 链 PEM
  3. 自签证书需勾选「标记为自签名证书」

手动上传的证书不会自动续期

到期前需要手动更新。优先使用自动签发。

内部 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 ​

ini
NRE_HTTP3_ENABLED=true

开启后 HTTPS 入口同时支持 HTTP/3(QUIC),不影响 HTTP/1.1 和 HTTP/2。需要客户端和浏览器支持。

基于 GNU General Public License v3.0 发布。