GetHTTPS 和 acme.sh 都能签发来自 Let’s Encrypt 的免费 SSL 证书。GetHTTPS 在浏览器中运行,零安装。acme.sh 是一个轻量级 shell 脚本,以普通用户身份运行(无需 Root),支持通过 cron 自动续签。
快速对比
| GetHTTPS | acme.sh | |
|---|---|---|
| 运行环境 | 浏览器 | Shell(bash/sh/zsh) |
| 安装 | 无需安装 | curl ... | sh 或 git clone |
| 需要 Root/sudo | 否 | 否(相比 Certbot 的独特优势) |
| 自动续签 | 否 | 是(cron 任务) |
| 私钥生成 | 浏览器(Web Crypto API) | 服务器(openssl) |
| 验证类型 | HTTP-01, DNS-01 | HTTP-01, DNS-01, TLS-ALPN-01, DNS alias |
| DNS API 插件 | 无(手动 DNS) | 150+ DNS 服务商 |
| 提交前预检 | ✅ | ❌ |
| 多 CA 支持 | 仅 Let’s Encrypt | Let’s Encrypt, ZeroSSL, Buypass, Google 等 |
| 配置文件 | 无 | ~/.acme.sh/ |
| 依赖 | 现代浏览器 | openssl, curl/wget, cron |
| 开源 | 否 | 是(GPL v3) |
何时使用 GetHTTPS
- 零安装 — 服务器上无需安装、配置或维护任何东西
- 无需命令行 — 浏览器界面对非技术用户更友好
- 隐私 — 私钥在浏览器中生成,从不存储在服务器上
- 快速一次性证书 — 测试环境、暂存环境、帮助他人
何时使用 acme.sh
- 自动续签 — 基于 cron 的续签,无需 Root 权限
- DNS API 集成 — 对 150+ 服务商(Cloudflare、Route 53 等)自动完成 DNS-01 验证
- 无需 Root — 与 Certbot 不同,acme.sh 以普通用户身份运行
- 多 CA — 可从 Let’s Encrypt、ZeroSSL、Buypass、Google Trust Services 签发
- 高级功能 — DNS alias 模式、通知钩子、部署钩子
结论
| 你的情况 | 使用 |
|---|---|
| 无服务器访问 / 一次性证书 | GetHTTPS |
| 需要无 Root 的自动续签 | acme.sh |
| 非技术 / 偏好图形界面 | GetHTTPS |
| 需要 DNS API 自动化 | acme.sh |
| 最高级别的私钥隐私 | GetHTTPS |
| 生产服务器,长期使用 | acme.sh 或 Certbot |
两者都是优秀的工具。GetHTTPS 在简洁性和隐私方面胜出。acme.sh 在自动化和 DNS 集成方面胜出。它们签发的是相同的 Let’s Encrypt 证书。
安装对比
GetHTTPS
在浏览器中打开 gethttps.com/app/setup。
完成。
acme.sh
# 安装(无需 Root)
curl https://get.acme.sh | sh -s email=you@example.com
# 签发证书
~/.acme.sh/acme.sh --issue -d example.com -w /var/www/html
# 自动续签已通过 cron 自动设置
crontab -l | grep acme.sh
acme.sh 安装到你的主目录 ~/.acme.sh/。它添加一个 cron 条目每天检查两次续签。无需系统级别的更改。
DNS-01 自动化:acme.sh 的杀手级功能
acme.sh 内置了 150+ DNS 服务商的 API 集成。这意味着可以全自动签发通配符证书,无需手动修改 DNS:
# Cloudflare 示例
export CF_Token="your-api-token"
~/.acme.sh/acme.sh --issue -d "*.example.com" --dns dns_cf
# AWS Route 53 示例
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
~/.acme.sh/acme.sh --issue -d "*.example.com" --dns dns_aws
GetHTTPS 需要你手动添加 DNS TXT 记录来获取通配符证书。对于一次性通配符证书这没问题,但如果你在多个域名上频繁续签,acme.sh 的 DNS API 自动化能节省大量时间。
隐私对比
| 方面 | GetHTTPS | acme.sh |
|---|---|---|
| 密钥生成 | 浏览器(Web Crypto API) | 服务器(openssl) |
| 密钥存储 | 你的下载文件夹 | 服务器上的 ~/.acme.sh/ |
| 密钥暴露 | 从不存在于任何服务器 | 存在于运行 acme.sh 的服务器上 |
| 遥测 | 无 | 无 |
GetHTTPS 具有严格的隐私优势:密钥只存在于你的浏览器中。使用 acme.sh 时,密钥存储在服务器上 — 这对于服务器管理的证书来说是正常的,但意味着任何能访问该用户账户的人都能读取密钥。
常见问题
acme.sh 比 Certbot 好吗?
不同的工具,不同的长处。acme.sh 不需要 Root,内置 150+ DNS 插件,是一个单独的 shell 脚本(约 7000 行 bash)。Certbot 有 Nginx/Apache 自动配置但需要 snap/pip 且通常需要 Root。对大多数命令行用户来说,两者都好用。查看我们的 Certbot 对比 →
可以两个都用吗?
可以。使用 GetHTTPS 获取第一张证书(无需配置时间),然后安装 acme.sh 进行后续自动续签。PEM 文件是标准格式 — acme.sh 可以为同一域名续签最初由 GetHTTPS 创建的证书。
acme.sh 能在 macOS 上运行吗?
可以。acme.sh 是纯 shell 脚本,能在任何配备 bash/sh、curl 和 openssl 的类 Unix 系统上运行 — 包括 macOS、Linux、FreeBSD,甚至 Windows WSL。