Java基础、中级、高级、架构面试资料

免费证书要变天?Cloudflare 申请 CA 资质,再见 Let’s Encrypt

业余杂谈 herman 11浏览
公告:“业余草”微信公众号 AI 中转站提供免费体验,点击链接 https://unity2.ai/register?ref=3XTnndN2 进行访问,支持 Claude、ChatGPT、Gemini 等最新模型!关注业余草微信公众号,添加作者微信:xttblog2!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
【腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

我这个网站,使用的是 Let’s Encrypt 提供的免费证书,3 个月过期一次。

以前,免费证书的有效期是一年,但随着技术浪潮的发展,现在免费证书只有 3 个月的有效期了,而且未来有效期会继续缩短。现在我的网站,在每次过期后,我都需要在阿里云上重新申请免费证书,重新部署。

只有一个网站的话,每次更新其实也挺麻烦的,但好在网站少,也能应付。直到国庆前的一个星期,公司里的几个运维同事请了长假,就有运维让我帮忙替换一下公司内网的几个通配符泛域名证书。

由于域名太多了,而且用的都是免费证书,每 90 天手动续一次 Let’s Encrypt 证书,太繁琐了,于是我就用 acme.sh 自动化给解决了。

当时,我也找了一些方案,发现 Cloudflare 也要当“免费证书菩萨”了。就在上个月底,这个领域迎来了一条重磅消息,Cloudflare 正式宣布计划成为面向公众的公共证书颁发机构(CA)。而在此之前,免费证书的江湖里,Let’s Encrypt 几乎是唯一的“主流答案”。

Cloudflare 申请成为公共 CA

2026 年 9 月 29 日,Cloudflare 在它的生日周(Birthday Week)期间宣布,计划成为一家面向公众的公共证书颁发机构,并已正式提交加入 Chrome、Apple、Microsoft 和 Mozilla 四大根证书计划的申请。

但 Cloudflare 自己也强调,目前尚未开始签发证书,相关工作仍处于申请和审批阶段。

Cloudflare 放大招了,正式进军 CA 证书领域了,Let’s Encrypt 每天签发 1000 万张证书正在成为过去式。

收购 GlobalSign 的根

文章配图参见我的公众号:https://mp.weixin.qq.com/s/9lhxONgWJFE5c37Q-kXnFA。

新 CA 最大的门槛不是技术,而是信任。

一个新根证书要被全球浏览器、操作系统和老旧设备的信任存储收录,往往需要数年积累。因此 Cloudflare 采取了两条腿走路。

  • 收购:与 GlobalSign 签署最终协议,收购一个自 2012 年起就被广泛信任的现有根,快速获得设备兼容性;
  • 自建:同时申请全新的根证书,以满足未来 WebPKI 生态日益收紧的政策要求。

但这其中也有几个值得关注的细节。

  1. ACME 是第一公民。Cloudflare 明确表示将提供免费的自动化证书服务,并以 ACME 作为主要接口,用户只需修改 ACME 目录地址(directory URL),即可把现有免费 CA 的证书管理流程迁移过来。
  2. 强制要求客户端支持 ARI。Cloudflare 计划只向支持 ACME Renewal Information(RFC 9773,CA 向客户端下发续期时间窗口的标准机制)的客户端签发证书,以便在需要吊销替换时有序完成。
  3. 为什么现在入场?冗余。Cloudflare 引用的数据显示 Let’s Encrypt 每天签发约 1000 万张证书、服务超 5 亿个网站,2025 年累计活跃证书超过 40 亿张。免费自动化证书高度集中于少数 CA,一旦出问题,全网缺乏同等级替代方案。
  4. 后量子布局。Cloudflare 计划 2027 年第一季度签发生产环境的 Merkle Tree Certificates(MTC),降低后量子密码体系下证书链膨胀带来的 TLS 握手开销,且与传统证书在同一 CA 中共存、平滑过渡。

社区怎么看?

消息发出后,NodeSeek 上网友的反应颇有代表性。有人调侃“互联网中心化又前进了一大步”,也有人表示“还是要感谢 Let’s Encrypt 开了先河”。两种声音都有道理,多一个免费 CA 意味着冗余和选择,但免费证书基础设施的集中度问题,也确实是整个 WebPKI 值得长期讨论的议题。

也就是说,短期内(审批 + 信任根分发仍需时间)Let’s Encrypt 仍是主力;但把证书流程做成标准化、可迁移的,是对未来最稳妥的准备。

acme.sh 成了主流方案

不管是 Let’s Encrypt 还是其它收费证书,自动化续期被越来越多的企业所选择,于是 acme.sh 就成了主流之一。

这主要是,当前的免费证书面临以下痛点。

  • Let’s Encrypt 免费证书只有 90 天有效期,手动续期不可持续,必须自动化;
  • 泛域名证书(*.example.com)无法走 HTTP 文件验证,只能用 DNS-01 验证,而阿里云、腾讯云等主流厂商的免费证书通常不支持免费申请泛域名证书;
  • 解决思路是让 ACME 客户端直接调用 DNS 服务商的 API,自动添加/删除 _acme-challenge TXT 记录完成验证。

而 acme.sh 是目前最流行的选择,纯 Shell 编写、零依赖、内置阿里云等数十家 DNS API 支持,安装后自动配置 cron 定时任务,到期前自动续期并触发 reload。

下面我们实操一下,用 acme.sh + 阿里云 DNS API 实现全自动证书管理。

适用场景:域名解析托管在阿里云 DNS;想要免费证书,尤其是泛域名证书;希望一次配置、永久自动续期。

先进行准备工作,这里以阿里云为例。

  • 一台 Linux 服务器(任意发行版均可)
  • 域名已托管到阿里云云解析 DNS
  • 一个阿里云账号(用于创建 RAM 子账号)

接下来是第 1 步,安装 acme.sh。

curl https://get.acme.sh | sh -s email=taoge@xttblog.com
source ~/.bashrc

安装完成后。

  • acme.sh 位于 ~/.acme.sh/ 目录;
  • 自动创建了 cron 定时任务(crontab -l 可查看),用于后续自动续期。

接下来是第 2 步,创建阿里云 RAM 子账号,不建议用主账号 Key!。

  1. 登录阿里云控制台 → 访问控制 RAM → 用户 → 创建用户,用户名如 acme-cert-manager;
  2. 访问方式勾选「编程访问」,获取 AccessKey ID / AccessKey Secret(Secret 只显示一次,务必保存);
  3. 为该用户添加权限策略 AliyunDNSFullAccess(管理云解析 DNS 的最小权限);
  4. 安全建议:单独子账号 + 最小权限,Key 泄露时影响面可控。

然后是第 3 步,配置环境变量。

export Ali_Key="你的AccessKey ID"
export Ali_Secret="你的AccessKey Secret"

也可以写入 ~/.acme.sh/account.conf 持久化(注意 chmod 600 保护)。

再然后是第 4 步,申请证书(含泛域名)。

acme.sh --issue -d xttblog.com -d "*.xttblog.com" --dns dns_ali

此时,执行时 acme.sh 会有以下效果。

  1. 向 CA 发起订单;
  2. 自动调用阿里云 DNS API,添加 _acme-challenge.example.com 的 TXT 记录;
  3. 等待 DNS 生效后完成验证,验证通过自动清理 TXT 记录;
  4. 证书生成在 ~/.acme.sh/example.com_ecc/ 目录下。

需要注意的是,acme.sh 默认 CA 是 ZeroSSL,如需指定 Let’s Encrypt,加 --server letsencrypt。

再接着是第 5 步,安装证书到 Web 服务器(以 Nginx 为例)。

acme.sh --install-cert -d example.com \
  --key-file       /etc/nginx/ssl/example.com.key \
  --fullchain-file /etc/nginx/ssl/example.com.cer \
  --reloadcmd      "systemctl reload nginx"

注意,--reloadcmd 会在每次证书更新后自动执行,实现 Web 服务器热加载,无需重启。

然后是第 6 步,也是最后一步,验证自动续期。

crontab -l          # 确认定时任务存在
acme.sh --cron      # 手动触发一次续期流程测试

默认在证书到期前 60 天会自动尝试续期,成功后自动执行之前配置的 --reloadcmd,全程无人值守。

最后

Cloudflare 入局公共 CA,承诺以 ACME 为核心、只需改 directory URL 即可迁移、强制 ARI 自动续期,这些设计几乎就是在说,你今天用 acme.sh 搭好的自动化管线,明天可以原封不动地切到新 CA。

同时,Cloudflare 的野心肯定不止是免费的 CA,收费的证书或许也已经在路上了。Let’s Encrypt 的盈利模式 Cloudflare 应该会推陈出新。如果未来各个云厂商都搞自己的自动化免费证书,Let’s Encrypt 的历史使命可能将会被终结。

Cloudflare 能否让免费证书变天,拭目以待吧!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » 免费证书要变天?Cloudflare 申请 CA 资质,再见 Let’s Encrypt