acme.sh命令行界面:参数解析和使用技巧
acme.sh是一款纯Unix shell脚本实现的ACME(Automated Certificate Management Environment,自动化证书管理环境)客户端协议工具,能帮助用户轻松获取和管理SSL/TLS证书。本文将详细解析其命令行参数,分享实用使用技巧,让普通用户及运营人员也能快速上手。
核心功能参数
acme.sh的命令行参数丰富,涵盖证书的申请、部署、更新等全生命周期管理。通过acme.sh文件可知,最常用的核心功能参数如下:
| 参数 | 功能描述 |
|---|---|
--install | 将acme.sh安装到系统中 |
--uninstall | 卸载acme.sh并移除定时任务 |
--upgrade | 将acme.sh升级到最新版本 |
--issue | 申请新证书 |
--deploy | 将证书部署到服务器 |
--renew-all | Renew(续签)所有证书 |
--revoke | 吊销证书 |
--list | 列出所有已获取的证书 |
这些参数是使用acme.sh的基础,掌握它们能完成证书管理的主要操作。
证书申请参数
申请证书是acme.sh的核心功能之一,有多种方式可供选择,适应不同的服务器环境和需求:
独立模式(Standalone Mode)
当服务器上没有运行Web服务时,可使用独立模式,acme.sh会临时启动一个Web服务器来完成域名验证。相关参数为--standalone,例如:
acme.sh --issue --standalone -d example.com
Apache模式
如果服务器运行着Apache Web服务,可使用--apache参数,acme.sh会自动配置Apache来完成验证,无需停止服务,示例:
acme.sh --issue --apache -d example.com
DNS模式
对于无法通过Web服务验证的场景,如获取泛域名证书,DNS模式是理想选择。使用--dns参数,可配合各种DNS服务商的API实现自动添加验证记录,也可手动添加。例如使用手动DNS模式:
acme.sh --issue --dns -d example.com
执行后,按照提示手动添加TXT记录,等待验证完成即可。acme.sh支持众多DNS服务商的API,相关脚本位于dnsapi/目录下,可根据自己使用的DNS服务商选择对应API。
证书部署参数
获取证书后,需要将其部署到Web服务器等应用中才能生效。acme.sh提供了便捷的部署参数,还支持多种服务器的部署脚本,位于deploy/目录,如Nginx、Apache等。
部署文件指定
可通过以下参数指定证书文件的部署路径:
--cert-file <file>:指定证书文件路径--key-file <file>:指定密钥文件路径--fullchain-file <file>:指定完整证书链文件路径
例如将证书部署到Nginx的配置目录:
acme.sh --deploy -d example.com --cert-file /etc/nginx/ssl/cert.pem --key-file /etc/nginx/ssl/key.pem --fullchain-file /etc/nginx/ssl/fullchain.pem --reloadcmd "nginx -s reload"
自动重载服务
--reloadcmd <command>参数可在证书部署后自动执行服务重载命令,确保新证书生效,如上述示例中的nginx -s reload就是重载Nginx服务的命令。
高级配置参数
除了基础功能,acme.sh还提供了一些高级配置参数,满足特定需求:
服务器指定
使用--server <server_uri>参数可指定ACME服务器,默认使用ZeroSSL。如果需要使用Let's Encrypt,可指定其服务器地址,例如:
acme.sh --issue -d example.com --server https://acme-v02.api.letsencrypt.org/directory
日志配置
--log <file>参数可指定日志文件路径,--log-level <1|2>设置日志级别(1为基本日志,2为详细日志),方便问题排查和跟踪操作记录。
证书有效期设置
虽然ACME证书通常有效期为90天,但可通过相关参数(具体可参考acme.sh文件)结合定时任务来管理证书的自动续签,确保证书始终有效。
使用技巧
安装与升级
安装acme.sh非常简单,执行acme.sh --install即可。安装完成后,会自动创建定时任务,定期检查证书是否需要续签。要升级acme.sh,只需运行acme.sh --upgrade。
批量管理证书
--list参数可列出所有已管理的证书,方便查看证书状态。--renew-all则能一键续签所有即将过期的证书,简化多证书管理流程。
结合部署脚本
deploy/目录下的各种部署脚本为不同服务器环境提供了便利。例如部署到Nginx,可参考deploy/nginx.sh脚本中的方法,实现证书的自动部署和服务重载。
通知配置
acme.sh支持证书续签等事件的通知功能,相关通知脚本位于notify/目录,可配置邮件、钉钉等多种通知方式,及时了解证书状态变化。
通过本文的介绍,相信你对acme.sh的命令行参数和使用技巧有了全面的了解。合理运用这些参数和技巧,能让SSL/TLS证书的管理变得高效而轻松。赶紧尝试使用acme.sh来管理你的证书吧!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



