Let's Encrypt vs ZeroSSL — Which Free SSL Should You Use?

免费 SSL 已成为现代网站的基本标准。Let's Encrypt 在 2015 年开创了这个领域,而 ZeroSSL 自 2020 年以来获得了关注 — 但它们实际上如何比较,哪一个适合哪种使用场景?

本文将 Let's EncryptZeroSSL 进行了全面的对比,涵盖开发人员和系统管理员关心的每个方面:证书有效期、通配符、速率限制和 ECC 支持。

简短回答: 如果你通过 ACME(Certbot、acme.sh)自动化,Let's Encrypt 仍然具有最广泛的生态系统支持。如果你想要 90 天的证书而不需要设置自动化 — 或者你更愿意通过浏览器用户界面点击 — ZeroSSL 更方便。

什么是 Let's Encrypt?

Let's Encrypt 是一个由 ISRG(互联网安全研究小组)运营的非营利性证书颁发机构,由 Mozilla、EFF、Cisco 和 Akamai 创立。它在 2016 年 4 月开始颁发免费证书,现已颁发超过 30 亿个证书。

其决定性特征:从第一天起就为自动化而构建。它开创的 ACME 协议现在是行业标准,得到所有主要虚拟主机控制面板(DirectAdmin、cPanel、Plesk)的支持,以及反向代理(如 Nginx Proxy Manager 和 Caddy)的支持。

什么是 ZeroSSL?

ZeroSSL 由 apilayer GmbH(奥地利)运营,颁发由 Sectigo 的根 CA(USERTrust RSA / ECC)支持的免费证书。它因其 易用的网页用户界面 而获得欢迎 — 你可以在不设置 ACME 客户端的情况下颁发证书。

ZeroSSL 现在也支持 ACME,通常与 Let's Encrypt 一起用作辅助 CA 来规避速率限制,或用于不值得自动化的小项目。

一览表对比

功能Let's EncryptZeroSSL
价格免费、无限制免费:3 个证书 / 90 天
证书有效期90 天90 天(免费)/ 1 年(付费)
通配符支持✅(DNS-01 挑战)✅(DNS-01 挑战)
多域名(SAN)每个证书最多 100 个域名最多 3 个域名(免费)
ACME 协议ACMEv2(事实标准)ACMEv2 + REST API
手动网页用户界面❌ 无✅ 是
ECC(ECDSA)证书✅ 默认
速率限制(每域名 / 周)50 个证书 / 域名 / 7 天3 个证书 / 90 天(免费)
浏览器信任ISRG Root X1、X2USERTrust(Sectigo)
OCSP Stapling
从用户界面颁发证书仅通过虚拟主机控制面板可在 zerossl.com 上获得

实际差异

1. 两者都默认为 90 天证书

两个 CA 都颁发免费的 90 天证书。Let's Encrypt 原则上固定持续时间 — 他们主张 短期证书 + 自动续期。ZeroSSL 让你选择 90 天(免费)或 1 年证书(付费)。

实际上,如果你运行自动续期(例如,cron 中的 certbot renew),有效期不重要 — 你的续期都在过期前约 30 天运行。

2. 速率限制不同的方式

Let's Encrypt 限制你为 每个已注册域名每 7 天 50 个证书(在公共域名上) — 对大多数网站来说足够。但在虚拟主机上,当许多客户的证书共享一个顶点时,合计数可能触发限制。

ZeroSSL 没有每域名速率限制,但免费账户限制为 每 90 天 3 个证书 — 对个人网站来说很好,对虚拟主机提供商来说很痛苦。

3. 默认 ECC = 更快、更轻

自 2024 年以来,Let's Encrypt 默认为 ECDSA P-256 证书。它们比 RSA-2048 小约 8 倍,使用的 CPU 少得多 — 对移动客户端和高吞吐量服务器更好。

ZeroSSL 支持 ECC 但仍默认为 RSA。你必须在 acme.sh 中传递 --ecc 或在用户界面中选择它。

4. 虚拟主机控制面板集成

每个当前的 DirectAdmin / cPanel / Plesk 都附带 Let's Encrypt 作为内置选项 — 一键点击颁发证书。ZeroSSL 通常需要你手动配置 ACME 端点或从命令行使用 acme.sh。

⚠️ 如果你切换 CA: 现有证书保持有效直到过期,但自动续期将从你指向的任何 CA 拉取。在切换前验证你的 cron 作业和 acme.sh 中的 --server URL — 否则续期将无声地失败。

你应该选择哪一个?

示例命令 — 在 acme.sh 中切换 CA

将默认 CA 设置为 ZeroSSL:

acme.sh --set-default-ca --server zerossl

切换回 Let's Encrypt:

acme.sh --set-default-ca --server letsencrypt

设置 ACME 和 ZeroSSL EAB 凭证

与 Let's Encrypt 不同 — 它可以与任何 ACME 客户端开箱即用 — ZeroSSL 需要 外部账户绑定(EAB):一个你从免费 ZeroSSL 账户仪表板生成的 Kid 和 HMAC 密钥对,之后才能通过 ACME 颁发证书。

使用 acme.sh 注册 ZeroSSL 的步骤:

# 首先注册你的 ZeroSSL EAB 凭证
acme.sh --register-account -m [email protected] \
  --server zerossl \
  --eab-kid <your-kid> \
  --eab-hmac-key <your-hmac-key>

# 从 ZeroSSL 颁发新证书
acme.sh --issue -d example.com -d www.example.com \
  --webroot /var/www/html \
  --server zerossl

如果你跳过 EAB 步骤,acme.sh 将返回 {"error":{"type":"urn:ietf:params:acme:error:externalAccountRequired"}} 错误。返回仪表板中的 ZeroSSL 开发者 API 部分以生成你的 EAB 凭证。

ACME 客户端兼容性一览

ACME 客户端 Let's Encrypt ZeroSSL
Certbot✅ 默认⚠️ 必须指定 --server URL
acme.sh✅ 默认--server zerossl
DirectAdmin(内置)✅ 一键点击❌ 不原生支持
Plesk AutoSSL✅ 内置❌ 不支持
Caddy✅ 自动⚠️ 必须指定 CA URL
Nginx Proxy Manager✅ 内置⚠️ 在较新版本中支持

根 CA 和长期浏览器信任

两个 CA 之间经常被忽视的区别是他们使用的 Root CA 链,这影响旧浏览器和未打补丁系统的信任。

Let's Encrypt 根链

Let's Encrypt 使用自己的 ISRG Root X1(RSA 4096)和 ISRG Root X2(ECDSA P-384)。自 2021 年以来,每个现代浏览器和操作系统都完全信任这些根。运行 Android 7.1.1 及更早版本的设备在 2021 年 9 月交叉签名的 DST Root CA X3 过期时遇到了问题,但现代 Let's Encrypt 证书现在仅使用 ISRG Root X1 链。

ZeroSSL 根链

ZeroSSL 证书由 Sectigo 的 USERTrust RSA 根支持,自 1999 年以来一直受信任。这给了 ZeroSSL 在旧嵌入式设备、IoT 硬件和未更新其根证书存储的遗留操作系统上的优势,因为 USERTrust 在这些存储中的存在时间远长于 ISRG Root X1。

要点: 对于现代浏览器和设备,两个根 CA 一样受信任。如果你支持旧 IoT 设备、旧 Android 版本或没有 OTA 更新的工业系统,ZeroSSL 的 Sectigo 链可能是更安全的选择。

并行运行两个 CA(双 CA 设置)

高级运营商有时运行 双 CA 设置 — 在同一服务器上从 Let's Encrypt 和 ZeroSSL 颁发证书,然后使用负载平衡器或故障转移逻辑在一个 CA 中断时自动切换。

这种方法在以下情况下很有用:

使用 acme.sh,为每个域名和 CA 单独颁发证书,然后使用部署钩子将每个证书复制到不同的路径。配置 Nginx 从主路径加载,备用到次路径:

# 从 Let's Encrypt 颁发
acme.sh --issue -d example.com --server letsencrypt \
  --keylength ec-256 -w /var/www/html

# 从 ZeroSSL 颁发平行证书(EAB 必须首先注册)
acme.sh --issue -d example.com --server zerossl \
  --keylength ec-256 -w /var/www/html \
  --cert-file /etc/ssl/zerossl/cert.pem \
  --key-file /etc/ssl/zerossl/key.pem

证书自动续期 — Let's Encrypt vs ZeroSSL

Let's Encrypt 最令人信服的优势之一是其无缝的自动续期生态系统。每个主要 ACME 客户端 — Certbot、acme.sh、Caddy 和内置虚拟主机控制面板集成 — 都提供部署钩子,在每个续期周期后自动安装续期的证书。配置好后,你永远不需要再考虑证书过期的问题。

ZeroSSL 也通过 ACME 支持自动续期,但首先需要 EAB 注册。如果你选择手动网页用户界面路径,你必须自己下载新证书并上传到你的服务器 — 一个手动步骤,可能导致真实风险:忘记并让你的证书过期而不被注意。

最佳实践: 无论你使用哪个 CA,都要运行一个每日 cron 作业来检查证书过期并在剩余少于 30 天时自动续期。永远不要依赖手动续期 — 过期的证书立即向浏览器显示错误,访客没有宽限期。

免费 SSL 足以用于商业网站吗?

来自任一 CA 的免费 SSL 提供与付费 SSL 相同的加密强度 — 浏览器对待所有的都一样有效。唯一真正的区别是 担保(如果 CA 错误颁发的索赔范围)和验证组织的 OV / EV 验证。

对于内容网站、博客、投资组合和大多数 SaaS — 免费 SSL 就足够。对于希望信任徽章的银行、金融和高信任电商网站,OV 或 EV 值得付费。

需要真正的通配符或 EV SSL 证书?

AsiaGB 销售 RapidSSL DV、通配符和 GeoTrust EV,最高可获 $1.25M 担保。DirectAdmin 每个计划免费安装。

查看 SSL 证书价格