首页/安全/加密与证书速查/acme.sh 客户端常用操作

acme.sh 客户端常用操作

轻量 ACME 客户端,纯 shell 实现,支持大量 DNS 服务商 API 自动验证;常见用法是签发后把证书安装到固定路径,并通过 reloadcmd 重载服务。

加密与证书速查安全更新于 2026-10-13

轻量签发客户端

这是一款轻量化的证书自动签发客户端,纯 shell 实现,支持大量域名服务商的接口自动完成验证。常见用法是签发后把证书安装到固定路径,并通过重载命令让服务加载新证书;安装时会写入定时任务,默认每天检查续期。这样服务配置只需指向固定路径,续期后即可自动生效,无需每次改配置。

基本信息

签发指定域名与验证方式完成签发
安装证书把证书与密钥复制到固定路径并配置重载命令
域名接口模式配合服务商凭据完成自动验证
定时任务安装时写入,默认每天检查续期

典型使用场景

  • 多域名批量签发:统一脚本与路径规范
  • 无公网入站服务:改用域名接口完成验证
  • 容器化部署:签发与安装分离,凭据通过挂载注入
  • 排错:续期后证书未生效时确认安装与重载环节
  • 审计:核对定时任务与凭据存放位置

典型流程

典型流程
acme.sh --issue -d example.com --webroot /var/www/html
acme.sh --install-cert -d example.com \
  --key-file /etc/nginx/ssl/example.com.key \
  --fullchain-file /etc/nginx/ssl/example.com.fullchain.pem \
  --reloadcmd 'nginx -s reload'
crontab -l | grep acme     # 确认定时任务已写入

验证方式

方式适用注意
文件验证有公网 HTTP 服务目录可写且路径可访问
域名接口验证无入站端口凭据需安全存放
手动方式临时场景不会自动续期
证书安装到固定路径后,服务配置指向该路径即可实现续期后自动生效;这是把证书内容与服务配置解耦的关键做法。

落地建议

  • 把域名接口凭据存到受限目录而非全局可读位置
  • 统一证书与密钥的目标路径规范
  • 重载命令执行后做一次握手验证
  • 定时任务与续期日志纳入监控
域名接口凭据若存成全局可读文件,等同于域名控制权泄露:可以借此签发任意覆盖该域名的证书,必须按密钥级敏感度管理。

易错点

  • 域名接口凭据存成全局可读文件
  • 多个域名脚本各自维护路径导致混乱,需要统一规范
  • 只配置签发不配置安装与重载,续期后服务仍用旧证书
  • 定时任务存在但从不检查执行结果
  • 容器环境下把凭据打进镜像,随镜像分发泄露
  • 重载命令未验证服务可用性,配置错误在续期时才暴露

数据来源与参考

  • acme.sh 项目文档(GitHub)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌