
免费 SSL 已成为现代网站的基本标准。Let's Encrypt 在 2015 年开创了这个领域,而 ZeroSSL 自 2020 年以来获得了关注 — 但它们实际上如何比较,哪一个适合哪种使用场景?
本文将 Let's Encrypt 与 ZeroSSL 进行了全面的对比,涵盖开发人员和系统管理员关心的每个方面:证书有效期、通配符、速率限制和 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 Encrypt | ZeroSSL |
|---|---|---|
| 价格 | 免费、无限制 | 免费: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、X2 | USERTrust(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 — 否则续期将无声地失败。
你应该选择哪一个?
- 个人网站 / 博客 / 投资组合 — 通过 Certbot 或虚拟主机控制面板使用 Let's Encrypt。设置一次,忘记它。
- 有许多网站的虚拟主机 — Let's Encrypt(更适合批量自动续期)。
- 小项目,无需 ACME 设置 — ZeroSSL 用户界面让你在浏览器中在几分钟内颁发证书。
- 规避 Let's Encrypt 速率限制 — 在 acme.sh 中将 ZeroSSL 用作备用,使用
--server zerossl。 - 想要 1 年证书而不进行自动续期 — ZeroSSL Premium(付费)。
- 需要担保 / OV / EV — 两者都不提供这些。改为从 Sectigo、DigiCert 或 GeoTrust 购买付费 SSL。
示例命令 — 在 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 中断时自动切换。
这种方法在以下情况下很有用:
- 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 证书价格