AX 爱鲜报

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 等众多项目采用。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。