Skip to content

证书的签发与续期 ​

面板保管你的服务使用的每一张 TLS 证书:节点上的入站和端点、面板自己的 HTTPS、隧道,以及插件。本页说明每张证书从哪里来、如何到达使用它的服务器,以及如何在不重启任何东西的情况下续期。管理证书见 证书。

证书类型 ​

类型由谁生成续期
自签名面板立即生成,不依赖任何外部方;有效期一年由面板
ACMELet's Encrypt 等证书机构,在验证证明你控制该名称之后签发由面板
上传你自己,以 PEM 证书和私钥的形式提供从不;请在到期前替换

REALITY 入站完全不需要证书:面板会生成它们的密钥。

由谁应答 ACME 验证 ​

证书机构只在验证证明你控制该名称后才签发证书。面板决定由谁应答:

验证方式应答方适用条件
dns-01面板,通过你的 DNS 服务商的 API(Cloudflare、Alibaba Cloud DNS 或 acme-dns)始终适用,任何名称都可以,包括通配符和不指向你任何服务器的名称
由面板完成的 http-01、tls-alpn-01面板所在的服务器名称解析到面板所在的服务器,且那里的 80 或 443 端口空闲
由节点完成的三者中任意一种在 由谁获取 中选择的节点对 http-01 和 tls-alpn-01 而言,名称指向该节点

节点只负责应答验证。它获得的证书会交给面板,由面板像其他证书一样保存。

证书保存在哪里 ​

  • 在面板的数据库中,连同私钥。它们是每份备份的一部分,这也是应设置备份密码的又一个理由。
  • 不在节点上。 节点在其配置中收到证书和私钥,保存在内存里,不在磁盘上保留任何证书。节点唯一存储的证书,是它与面板之间控制链路所用的自身身份证书。
  • ACME 账户数据 也在数据库中,所以更换容器后它依然保留。

证书如何到达入站 ​

入站或端点从三个来源之一获取证书,在 TLS 证书 中设置:它自己的(写在其配置中)、节点证书,或面板证书库中的一张。节点还可以有一张 兜底证书,用于其所有本来没有证书的 TLS 入站,包括证书文件在节点上缺失的入站。

面板把证书和私钥放进它为每个节点构建的配置中。更改入站使用的证书或为证书续期,都是对该入站的普通变更:节点只重建携带该证书的项目,不会重启任何东西。参见 无需重启的变更。

续期 ​

面板每 6 小时检查一次它能续期的每张证书:

  • 证书到期 的判断:到期前 30 天;签发时有效期不足 90 天的,则在其有效期的最后三分之一。
  • 自签名证书 会重新生成;ACME 证书 会用最初签发时的验证方式重新获取。
  • 每个使用它的节点 都会以实时变更的方式收到新证书。
  • 续期失败时旧证书继续提供服务。 面板在下一次检查时重试,并发出 panel.cert_renew_failed;续期成功则发出 panel.cert_renewed。

上传的证书永远不会续期。当它临近到期时,面板会发出 panel.cert_expiring,以便通知提醒你。

固定值随证书轮换 ​

自签名证书无法通过证书机构校验,所以面板把它的固定值(pin,即该证书的精确指纹)写入用户的链接和配置文件。每次签发或续期证书时都会计算固定值。

自签名证书续期或重新签发时,其固定值会改变。应用在下一次刷新订阅时获得新的固定值;在此之前,它们会拒绝新证书。自签名证书有效期一年,所以这大约一年发生一次,按常规计划刷新的应用永远不会察觉。ACME 证书从不固定,所以它们的续期对应用没有任何影响。参见 从模板到链接。

面板自己的证书 ​

设置向导会创建面板自己的 HTTPS 证书,默认为自签名,覆盖你列出的地址。

  • 它跟随你的地址。 设置面板域名或订阅域名时会重新签发它,使其包含所有这些名称,包括通配符订阅域名。
  • 它无需重启即可重新加载。 面板的网页服务器每 10 秒检查一次证书,发生变化时就切换到新证书。损坏的更新会被忽略,最后一张有效证书继续提供服务。
  • 它可以被替换:换成证书库中的 ACME 证书或上传的证书,或你自己管理的磁盘证书文件。这时所有在用的名称都必须包含在证书中:证书未覆盖的域名会在应用中产生 TLS 错误。

面板只在你的地址变化时重写它自己保留的那张证书。你为面板选定的证书库中的证书永远不会被重写,因为它可能还在为客户端固定了它的入站提供服务。

隧道与插件的证书 ​

  • 使用 TLS 的隧道 会获得一张为隧道自身内部名称签发的自签名证书,有效期十年,由另一端固定。两端都是你自己的节点,所以既不用购买,也不用续期。
  • 插件 可以从面板的证书库获取证书,由面板续期,插件每隔几分钟获取一次。对于位于其他服务器上的插件,只提供面板所在服务器没有参与验证的证书,面板自己的 HTTPS 证书则永远不提供。参见 插件平台。
  • 证书:签发、分配和替换证书。
  • 安全模型:保护面板与节点之间链路的证书。

文字与图片采用 CC BY 4.0 许可。