轻量签发客户端
这是一款轻量化的证书自动签发客户端,纯 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 服务 | 目录可写且路径可访问 |
| 域名接口验证 | 无入站端口 | 凭据需安全存放 |
| 手动方式 | 临时场景 | 不会自动续期 |
证书安装到固定路径后,服务配置指向该路径即可实现续期后自动生效;这是把证书内容与服务配置解耦的关键做法。
落地建议
- 把域名接口凭据存到受限目录而非全局可读位置
- 统一证书与密钥的目标路径规范
- 重载命令执行后做一次握手验证
- 定时任务与续期日志纳入监控
域名接口凭据若存成全局可读文件,等同于域名控制权泄露:可以借此签发任意覆盖该域名的证书,必须按密钥级敏感度管理。