acme.sh
纯 Shell 编写的 ACME 协议客户端,用于自动申请、续期和部署 SSL/TLS 免费证书,兼容 Bash、dash、sh,无需 Python,也无需 root 权限。
过去 7 天收获 3 颗 Star
爱鲜报评分
0.0
0 人评分
48k
星数
是
中文
Shell
主语言
是
活跃
811
贡献者
人工分析
EDITORIAL推荐理由
acme.sh 是证书自动化领域最成熟的工具之一,近 4.8 万 Star,被 FreeBSD、Proxmox、OPNsense 等众多知名项目采用。它用纯 Shell 实现完整 ACME 协议,几乎可在任何 Unix 环境运行,学习成本低、脚本化能力强。对于需要批量管理证书或无法安装 Python 依赖的服务器,是 certbot 之外的首选方案。
适用场景
- 为 Nginx/Apache 等 Web 服务自动签发与续期 Let's Encrypt 证书
- 在路由器、NAS、OpenWrt 等资源受限设备上部署 HTTPS
- 为通配符域名(wildcard)和 SAN 多域名证书做统一管理
- 在 CI/CD 或容器环境中以 Docker 方式签发证书
- 通过 DNS API 模式在无公网 80 端口的场景完成域名验证
优点
- 纯 Shell 实现,无 Python 等运行时依赖,几乎全平台可用
- 支持 ECDSA、SAN、通配符证书及多种 CA(Let's Encrypt、ZeroSSL、Buypass 等)
- 一条命令完成签发、续期、安装,并自带 cron 定时任务
- 无需 root 权限即可运行,支持 Docker 与 IPv6
- 中文 Wiki 完善,社区活跃、生态集成广泛
缺点
- Shell 脚本调试与二次开发门槛相对较高
- DNS API 模式需配置对应服务商凭据,初次上手略繁琐
- 自动化安装证书到各类服务的钩子需按需选择,配置项较多
- 证书续期依赖 cron 或 systemd timer,需自行确保任务生效
上手难度
进阶
acme.sh 是什么
acme.sh 是一个纯 Shell 编写的 ACME 协议客户端,用于自动化申请、续期和安装 SSL/TLS 证书。它不依赖 Python,兼容 Bash、dash 与 POSIX sh,可在 Linux、macOS、BSD、Windows(cygwin)等大量平台上运行。
核心特性
- 完整 ACME 协议实现:支持 ACME v2,兼容 Let's Encrypt、ZeroSSL、Buypass 等 CA。
- 证书类型丰富:支持 ECDSA 证书、SAN 多域名证书与通配符(wildcard)证书。
- 零依赖:不需要 Python,也不需要 root/sudo 权限。
- 一体化流程:一个脚本完成签发、续期、安装,并可配置 cron 定时任务与通知。
- 环境友好:提供 Docker 镜像,支持 IPv6。
典型使用流程
安装脚本后,签发证书通常只需一条命令(示意):
# 以 webroot 方式为域名签发证书(示意,具体参数以官方 Wiki 为准)
acme.sh --issue -d example.com -d www.example.com -w /var/www/html
随后可将证书安装到指定位置,并交由 cron 自动续期:
acme.sh --install-cert -d example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.crt \
--reloadcmd "systemctl reload nginx"
验证方式
- HTTP 验证:通过 webroot 或 standalone 模式完成域名校验。
- DNS 验证:内置大量 DNS 服务商 API,适合通配符证书与无 80 端口的场景。
适用人群
acme.sh 适合运维工程师、独立开发者以及需要在路由器、NAS、容器等环境中管理 HTTPS 证书的用户。项目提供中文 Wiki,社区活跃,被 FreeBSD、Proxmox、OPNsense、LNMP 等众多项目采用。
评论
- 暂无评论,来写第一条吧。