免费SSL证书申请新选择:Anchor Relay DNS委托验证方案

Anchor Relay 是什么?

Anchor Relay 是一个基于 ACME 协议的证书管理服务,它充当你的 ACME 客户端和证书颁发机构(CA)之间的智能代理。简单来说,它就像是一个"证书申请助手",帮助你更安全、更便捷地获取公网可信的 SSL/TLS 证书。

相较于传统的证书申请方法,Anchor Relay 有着明显的优势。传统方案中,你需要直接与 Let's Encrypt 等 CA 交互,要么开放 80 端口进行 HTTP-01 验证,要么提供 DNS API 凭据进行 DNS-01 验证,这不仅增加了安全风险,还需要复杂的配置管理。而 Anchor Relay 通过 DNS 委托的方式,让你只需一次性配置 CNAME 记录,后续所有的证书申请和续签都由 Anchor 自动处理 DNS 挑战,无需暴露基础设施或分发敏感的 DNS API 凭据。同时,它提供统一的管理界面和细粒度的权限控制,让证书管理变得既安全又简单。

Anchor Relay 在公网服务的证书申请上没有体现出太大的比较优势,但是简化了内网服务的证书申请难度和续签烦恼,私钥也是在本地生成,是一个安全的新选择。

解决了哪些痛点?

传统的 DNS-01 验证方式需要给 ACME 客户端提供 DNS 区域的写入权限,这带来了严重的安全隐患。ACME 客户端往往需要过于宽泛的 DNS 权限,而且多个服务同时操作 DNS 记录容易产生冲突,DNS API 凭据分散管理也增加了泄露风险。同时,传统方案还需要额外的服务来安全分发证书和私钥,多环境部署时配置复杂,证书生命周期管理困难。此外,某些环境无法开放 80 端口进行 HTTP-01 验证,内网环境难以完成域名验证,IoT 设备等不信任环境的证书管理更是难上加难。

以我为例,如果想要给家里的一台设备申请证书,我只有两个选择:要么使用域名 API 密钥通过 DNS 验证方式申请(但这意味着要在设备上存储敏感的 DNS API 凭据,存在泄密风险。对了,其实申请DNS密钥其实也挺麻烦,没有备份每次也要重新申请。),要么使用域名服务商提供的一键证书申请服务(但这通常需要手动续期,而且无法自动化)。现在有了 Anchor Relay,我只需要一次性配置 CNAME 记录,就再也不用担心 DNS 密钥泄露的问题,也不需要手动处理证书续期,一切都变得自动化和安全了。

Anchor Relay 的核心优势

Anchor Relay 在安全性方面做到了极致,私钥始终在本地生成和存储,Anchor 永远不会接触到你的私钥材料。通过 EAB(外部账户绑定)令牌实现域名级别的精细权限控制,预授权机制避免了传统 ACME 挑战的安全风险。在易用性方面,只需要添加一条 CNAME 记录就能完成 DNS 配置,Anchor 自动管理所有 DNS 验证记录,不需要开放 HTTP 端口,仅需出站连接即可。在管理效率上,配置一次即可实现自动续签,支持多 CA 故障切换提高可用性,统一控制台集中管理所有证书的完整生命周期(付费服务)。

适用场景

Anchor Relay 特别适合家庭实验室和自托管环境,让开发者可以在家运行服务而不暴露基础设施,无需开放 80 端口或端口转发,与 Certbot、Caddy 等工具完美兼容。对于 IoT 和边缘设备部署,它为不信任环境提供安全的证书管理,每个设备使用独立的域名范围令牌,即使设备凭据泄露也能将影响范围控制在最小。在内网和防火墙后环境中,它无需暴露内部基础设施,通过预委托的 DNS 挑战验证实现零流量转发需求。

证书申请原理

Anchor Relay 的工作原理基于 DNS 委托验证

  1. 预配置阶段:你在 DNS 中添加一条 CNAME 记录,将 ACME 挑战验证委托给 Anchor
  2. 申请阶段:你的 ACME 客户端向 Anchor 发送证书申请请求
  3. 验证阶段:Anchor 自动处理 DNS 挑战记录的发布和清理
  4. 颁发阶段:CA 验证通过后,Anchor 中继证书到你的客户端

重要:整个过程中,私钥完全在你的本地生成和存储,Anchor 只处理公开的证书签名请求(CSR)。

关于续签的重要说明

一个经常可能被问到的问题是:"以后续签还需要修改 DNS 吗?"

答案是:不需要!

  • 初始的 CNAME 记录是一次性配置,用于验证域名所有权和建立委托关系
  • 后续的所有续签操作都通过这个委托关系自动完成
  • Anchor 会自动处理所有的 DNS 挑战记录创建和清理
  • 你的 Certbot 定时任务可以正常运行,无需人工干预

这正是 Anchor Relay 相比传统方案的核心优势之一:配置一次,长期使用

实际申请流程演示

下面我们通过 Certbot 来演示完整的申请过程:

第一步:域名注册和验证

首先访问 Anchor 控制台,输入你要申请证书的域名:

在 Anchor 控制台输入目标域名
在 Anchor 控制台输入目标域名

第二步:DNS 委托配置

系统会要求你添加一条 CNAME 记录来验证域名所有权并委托 DNS 挑战:

根据提示添加 CNAME 记录进行域名验证
根据提示添加 CNAME 记录进行域名验证

这个 CNAME 记录的作用是:

  • 验证你对域名的控制权
  • 将后续的 ACME 挑战验证委托给 Anchor 处理
  • 一次配置,长期有效

第三步:获取 ACME 配置

DNS 验证通过后,Anchor 会生成专门的 ACME 配置信息:

获取用于 ACME 客户端的配置信息
获取用于 ACME 客户端的配置信息

Anchor 贴心地提供了多种工具的配置命令,包括:

  • Certbot
  • Caddy
  • cert-manager
  • acme.sh

你可以直接复制粘贴使用。

不同 ACME 客户端工具的配置选项
不同 ACME 客户端工具的配置选项

第四步:安装和配置 Certbot

在你的服务器上安装 Certbot:

# 更新系统包
sudo apt update
sudo apt install snapd

# 安装 Certbot
sudo snap install --classic certbot

# 创建命令链接
sudo ln -s /snap/bin/certbot /usr/bin/certbot

第五步:执行证书申请

使用 Anchor 提供的配置命令申请证书:

命令行中执行 Certbot 证书申请的完整过程
命令行中执行 Certbot 证书申请的完整过程

在这个过程中:

  1. Certbot 向 Anchor 的 ACME API 发送申请
  2. Anchor 验证请求权限并转发给真实的 CA
  3. Anchor 自动处理 DNS 挑战记录
  4. CA 验证通过后,证书被传递回你的服务器
  5. 私钥始终在你的本地生成和存储

第六步:监控和管理

Anchor 控制台提供实时的申请状态监控:

Web 界面显示证书申请的实时进度
Web 界面显示证书申请的实时进度

申请成功后,你可以在控制台查看证书详情并下载公钥部分:

证书申请成功后的管理界面,可查看和下载证书
证书申请成功后的管理界面,可查看和下载证书

您可能感兴趣的文章

发现更多精彩内容