GetHTTPS 和 Certbot 都能从 Let’s Encrypt 签发免费 SSL 证书,但方式截然不同。GetHTTPS 在浏览器中运行 — 零安装、零服务器访问。Certbot 在服务器上作为命令行工具运行,支持自动续签和 Web 服务器集成。
两个工具产出完全相同的 Let’s Encrypt 证书。区别完全在于你如何获取它。本指南从各个维度对比,帮你选择适合自己的工具。
什么是 GetHTTPS?
GetHTTPS 是一个浏览器端 ACME 客户端。你打开网页,输入域名,完成验证,下载证书文件。无需安装软件,无需创建账号,无需服务器访问权限。
你的私钥使用 Web Crypto API 在浏览器中生成,从不离开你的设备 — 即使是 GetHTTPS 的服务器也看不到。该工具直接与 Let’s Encrypt 的 ACME API 通信,没有代理或中间件。
GetHTTPS 免费使用。
什么是 Certbot?
Certbot 是 Let’s Encrypt 推荐的官方 ACME 客户端,由电子前沿基金会(EFF)维护。它是一个在服务器上运行的 Python 命令行工具,可获取证书、配置 Web 服务器并处理自动续签。
Certbot 需要 root/sudo 权限,通常通过 snap、pip 或 Docker 安装。它是开源的(Apache 2.0 许可证),免费使用。
完整对比表
| 功能 | GetHTTPS | Certbot |
|---|---|---|
| 运行环境 | 浏览器标签页 | 服务器命令行 |
| 安装 | 无需 — 打开 URL 即可 | snap、pip 或 Docker |
| 需要服务器访问 | 否 | 是(root/sudo) |
| 操作系统 | 任何(只需浏览器) | Linux、macOS(已放弃 Windows) |
| 私钥生成 | 浏览器(Web Crypto API) | 服务器(OpenSSL/Python) |
| 私钥存储 | 由你下载 | 服务器上的 /etc/letsencrypt/ |
| 自动续签 | ❌ 手动重新访问 | ✅ systemd 定时器 / cron |
| Web 服务器自动配置 | ❌ 手动 | ✅ Nginx/Apache 插件 |
| 验证类型 | HTTP-01, DNS-01 | HTTP-01, DNS-01, TLS-ALPN-01 |
| 提交前预检 | ✅ | ❌ |
| 通配符支持 | ✅ (DNS-01) | ✅ (DNS-01) |
| 多域名 (SAN) | ✅(最多 100 个) | ✅(最多 100 个) |
| ECDSA 密钥 | ✅ P-256(默认) | ✅(需要标志) |
| 依赖 | 无 | Python、snapd 或 Docker |
| 证书颁发机构 | Let’s Encrypt | Let’s Encrypt(默认),其他 |
| 开源 | 否 | 是(Apache 2.0) |
| 价格 | 免费 | 免费 |
何时使用 GetHTTPS
没有服务器 SSH 访问权限
这是最明确的场景。虚拟主机、托管 WordPress、公司防火墙后的服务器 — 如果你无法安装软件,GetHTTPS 是唯一保持私钥本地化的浏览器端选项。
你获取证书文件(privkey.pem、fullchain.pem)并通过主机提供的方式上传:cPanel、Plesk、FTP 或文件管理器。
你需要零安装零依赖
打开浏览器标签页,获取证书,搞定。没有 Python 版本冲突,没有 snap 限制问题,没有 Docker 镜像。如果你曾花 30 分钟调试为什么 certbot 装不上,你就知道这有多重要。
GetHTTPS 可以在任何配备现代浏览器的操作系统上运行 — 包括 Windows、macOS、ChromeOS,甚至是平板电脑。
你需要对私钥的最大控制
GetHTTPS 使用 Web Crypto API 在浏览器中生成私钥。密钥仅存在于浏览器内存中,直到你点击下载。它从未写入任何服务器的磁盘,从未通过网络传输,从未存储在你看不到的地方。
使用 Certbot 时,密钥在服务器上生成并存储在 /etc/letsencrypt/live/yourdomain/privkey.pem。如果你信任服务器这没问题 — 但任何拥有 Root 权限的人都能读取它。在共享基础设施的云环境中,这一点很重要。
你在为他人获取证书
DevOps 为客户的服务器生成证书。帮助非技术同事。为你不管理的服务器获取证书。GetHTTPS 让你无需访问他人服务器就能生成证书并交付文件。
你需要一张快速一次性证书
暂存环境。测试部署。还没设置自动化的新项目。GetHTTPS 让你在 3-5 分钟内零准备获取证书。
何时使用 Certbot
你需要自动续签(第一大理由)
Certbot 的杀手级功能:一个 systemd 定时器(或 cron 任务)在证书过期前自动续签。无需人工干预,不会忘记续签,不会在周五凌晨 3 点因证书过期而手忙脚乱。
# Certbot 每天检查两次,在到期前 30 天内续签
sudo systemctl list-timers | grep certbot
# NEXT LEFT UNIT
# 2026-05-08 14:22:00 UTC 3h left snap.certbot.renew.timer
鉴于 Let’s Encrypt 90 天的有效期(以及即将到来的 47 天有效期),自动续签不是锦上添花 — 对生产服务器来说是必需的。
你需要自动 Web 服务器配置
Certbot 的 --nginx 和 --apache 插件会修改你的服务器配置以启用 HTTPS — 包括 SSL 指令、重定向和推荐的密码套件设置。一条命令搞定一切:
# Certbot 获取证书并配置 Nginx
sudo certbot --nginx -d example.com -d www.example.com
# 它在后台做了什么:
# 1. 生成密钥对
# 2. 证明域名控制权(端口 80 上的 HTTP-01)
# 3. 从 Let's Encrypt 获取证书
# 4. 在 Nginx 配置中写入 ssl_certificate/ssl_certificate_key
# 5. 添加 HTTP 到 HTTPS 的重定向
# 6. 重载 Nginx
使用 GetHTTPS,你需要手动完成所有这些 — 获取证书、上传文件、编辑配置、设置重定向、重载服务器。更多控制权,但更多工作量。
你管理规模化的基础设施
Certbot 可以脚本化、容器化,并通过配置管理工具部署:
# Ansible playbook 片段
- name: Install certbot
snap:
name: certbot
classic: true
- name: Get certificate
command: certbot --nginx -d {{ domain }} --non-interactive --agree-tos -m {{ email }}
对于 10+ 服务器,脚本化的 Certbot 比为每台服务器访问 GetHTTPS 更快。
你需要 TLS-ALPN-01 验证
这种验证类型通过端口 443 进行验证,无需放置文件或修改 DNS。当端口 80 被封锁且你无法修改 DNS 时很有用。只有命令行客户端(Certbot、acme.sh)支持它 — 浏览器端客户端不支持。
安装对比
GetHTTPS — 零步骤
在浏览器中打开 gethttps.com/app/setup。
就这样。现在就能用,任何设备,无需任何准备。
Certbot — 取决于操作系统的若干步骤
Ubuntu/Debian(snap — Certbot 推荐方式):
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
pip(任何 Linux,当 snap 不可用时):
sudo pip install certbot certbot-nginx
Docker(与系统包隔离):
docker run -it --rm \
-v /etc/letsencrypt:/etc/letsencrypt \
-v /var/www/html:/var/www/html \
certbot/certbot certonly --webroot -w /var/www/html -d example.com
Amazon Linux 2023:
sudo dnf install certbot python3-certbot-nginx
常见安装问题:
- 非标准 Linux 安装上的 snap 限制错误
- pip 安装时的 Python 版本冲突
- 缺少
python3-certbot-nginx插件包 - 需要 sudo/root 的权限错误
GetHTTPS 避免了所有这些 — 无需安装意味着没有安装问题。
流程对比
使用 GetHTTPS 获取证书
- 打开 gethttps.com/app/setup
- 输入你的域名
- 选择 HTTP-01 或 DNS-01 验证
- 放置验证文件或添加 DNS 记录
- GetHTTPS 在提交前预检验证配置(提前发现错误)
- 下载
privkey.pem、cert.pem、chain.pem、fullchain.pem - 上传到你的服务器
- 配置你的 Web 服务器(Nginx、Apache、其他)
- 设置 HTTP→HTTPS 重定向
耗时: 首次 5-10 分钟,续签 3-5 分钟。
使用 Certbot 获取证书
自动配置模式(最常见):
sudo certbot --nginx -d example.com -d www.example.com
独立模式(无 Web 服务器集成):
sudo certbot certonly --standalone -d example.com
Webroot 模式(服务器保持运行):
sudo certbot certonly --webroot -w /var/www/html -d example.com
DNS 验证(通配符):
sudo certbot certonly --manual --preferred-challenges dns -d "*.example.com"
耗时: 2-5 分钟(安装完成后)。
隐私与安全对比
| 方面 | GetHTTPS | Certbot |
|---|---|---|
| 私钥生成 | 浏览器(Web Crypto API) | 服务器(通过 Python 使用 OpenSSL) |
| 密钥存在于 | 仅你的下载文件夹 | 服务器文件系统 |
| 密钥暴露给 | 仅你自己 | 服务器上拥有 Root 权限的任何人 |
| ACME 通信 | 浏览器 → Let’s Encrypt(直连 HTTPS) | 服务器 → Let’s Encrypt(直连 HTTPS) |
| 代理/中间件 | 无 | 无 |
| 账号数据 | 浏览器中,无需邮箱 | 服务器上,邮箱可选 |
| 遥测 | 无 | EFF 邮箱订阅提示(可跳过) |
| 代码审计 | 仅浏览器,可通过 DevTools 检查 | Apache 2.0,约 50K 行 Python |
结论: 两者都直接连接 Let’s Encrypt,没有中间商。安全差异在于私钥存放位置。GetHTTPS 让你下载后自行决定。Certbot 将密钥留在服务器上 — 对服务器管理的证书来说是正常的,但意味着任何有系统访问权限的人都能读取。
续签对比
| GetHTTPS | Certbot | |
|---|---|---|
| 流程 | 重新访问网站,完成新验证,替换文件 | 自动(systemd 定时器每天检查两次) |
| 人工投入 | 每次续签 3-5 分钟 | 初始设置后为零 |
| 故障检测 | 网站出问题时你会发现 | 日志 + 可选邮件告警 |
| 续签频率 | 每 60-90 天(手动) | 每 60 天(自动) |
| 47 天证书(2029 年) | 每约 30 天手动 — 痛苦 | 仍然自动 — 无变化 |
这是 Certbot 最大的优势。对生产服务器来说,自动续签不是可选项。
混合方案(两全其美)
许多团队同时使用两个工具:
- GetHTTPS 获取第一张证书 — 零配置时间。5 分钟内让 HTTPS 运行,无需在服务器上安装任何东西。
- Certbot 用于后续续签 — 服务器配置好并稳定后,安装 Certbot 实现自动续签。
这在”先跑起来,后续再自动化”的工作流中特别常见。你不需要永远选择一个 — PEM 文件是标准格式,Certbot 可以续签最初由 GetHTTPS 为同一域名创建的证书。
结论
| 你的情况 | 推荐工具 | 原因 |
|---|---|---|
| 无 SSH/Root 访问(虚拟主机) | GetHTTPS | 无服务器访问的唯一选择 |
| 快速一次性证书 | GetHTTPS | 比安装 Certbot 更快 |
| 最高级别的私钥隐私 | GetHTTPS | 密钥从不存在于任何服务器 |
| 为他人获取证书 | GetHTTPS | 无需访问他人服务器 |
| 生产服务器,长期使用 | Certbot | 自动续签必不可少 |
| Nginx/Apache 自动配置 | Certbot | 一条命令搞定一切 |
| 管理 10+ 服务器 | Certbot | 可脚本化和自动化 |
| 首次配置 + 长期 | 两者 | GetHTTPS 启动,Certbot 维护 |
两个工具都是免费的,产出完全相同的 Let’s Encrypt 证书。Certbot 是开源的(Apache 2.0)。GetHTTPS 免费但非开源 — 不过作为浏览器端工具,其 JavaScript 可通过 DevTools 检查。证书本身是一样的 — GetHTTPS 输出的 cert.pem 和 Certbot 为同一域名产出的在字节上是等价的。区别完全在于流程。
从 GetHTTPS 开始,如果你想让 HTTPS 立即生效:gethttps.com/app/setup
之后添加 Certbot,如果你需要自动续签:certbot.eff.org
常见问题
GetHTTPS 和 Certbot 一样可靠吗?
两个工具与相同的 Let’s Encrypt ACME API 通信,产出相同的证书。GetHTTPS 额外增加了预检步骤,在提交前验证你的验证配置 — 这能提前发现那些 Certbot 只有在验证失败并消耗速率限制配额后才会发现的错误。
可以从 GetHTTPS 切换到 Certbot(或反过来)吗?
可以。证书文件是标准 PEM 格式。你可以今天用 GetHTTPS 生成证书,明天设置 Certbot 来续签 — 或者用了多年 Certbot 后,在需要无服务器访问权限快速重签时切换到 GetHTTPS。两个工具不冲突,互相不知道对方的存在。
GetHTTPS 支持自动续签吗?
不支持。GetHTTPS 专为手动、按需的证书签发设计。如果你需要自动续签,在服务器上使用 Certbot 或 acme.sh。混合方案(先用 GetHTTPS,再用 Certbot 续签)让你兼得两者优势。
Certbot 难安装吗?
取决于你的系统。在现代 Ubuntu 上,sudo snap install --classic certbot 10 秒就能完成。在旧系统、自定义环境或非标准 Linux 上,Python 依赖冲突很常见。GetHTTPS 完全避免了安装 — 不用装意味着没有安装问题。
acme.sh 是个替代选择吗?
acme.sh 是一个 shell 脚本 ACME 客户端,不需要 Root 且有 150+ DNS API 插件。它介于 GetHTTPS(简洁)和 Certbot(自动化)之间。如果你想要无 Root 的命令行自动化并且需要更好的 DNS 集成,acme.sh 值得考虑。
证书有效期降至 47 天后会怎样?
CA/Browser Forum 已投票将最长有效期在 2029 年前降至 47 天。这使 Certbot 的自动续签变得更加重要 — 每 30 天手动续签虽然可行但很繁琐。GetHTTPS 对于一次性证书、紧急续签和无访问权限场景仍然有效,但不能作为生产站点自动续签的主要替代方案。
哪个更安全?
两者都是安全的。证书完全相同。主要的安全差异:
- GetHTTPS: 私钥从不存在于任何服务器上(在浏览器中生成,由你下载)
- Certbot: 私钥存在于服务器文件系统(Root 可读)
对大多数配置来说,Certbot 的服务器端密钥没问题。对于想要最小化密钥暴露的高安全场景,GetHTTPS 的浏览器专属模式更严格。
Certbot 能做通配符证书吗?
可以,通过 DNS-01 验证。但 Certbot 的通配符流程比 HTTP-01 流程更手动 — 你需要添加 DNS TXT 记录,可能还需要 DNS 插件。GetHTTPS 以相同方式处理通配符证书(指南)。