跳到主要内容

AutoSSL.sh 自动化证书教程

AutoSSL.sh 是用于自动化管理 SSL 证书生命周期的命令行客户端,参数风格接近 acme.sh,但它对接的是平台 REST API,不是标准 ACME 协议。它适合在服务器、CI/CD 或运维脚本中完成证书签发、验证、下载、部署、续费、重签和吊销。

典型流程如下:

  1. 安装 autossl.sh 和依赖。
  2. 绑定平台 API Key 到当前服务器。
  3. 使用 DNS 或 HTTP 验证签发证书。
  4. 保存部署参数,让后续续费和补发自动复用。
  5. 安装 Cron,定期检查即将到期或需要补发的证书。

准备工作

  • Linux 或 macOS 服务器。
  • 已安装 bashcurljqopenssl
  • 控制台账户余额充足。
  • 已创建 API Key,并把当前服务器公网 IP 加入白名单。
  • DNS 验证需要 DNS 服务商 API 凭据;HTTP/IP 证书验证需要可被公网访问的 Webroot 目录。

安装客户端

建议安装到 /usr/local/bin/autossl.sh,后续所有命令都以该路径为准。

# Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y curl jq openssl unzip

# CentOS / RHEL / AlmaLinux / Rocky
sudo yum install -y curl jq openssl unzip

# macOS
brew install curl jq openssl

下载并授权执行:

sudo curl -L \
-H "Referer: https://www.anquanssl.com" \
-o /usr/local/bin/autossl.sh.zip \
"https://static.trustserver.cn/assets/autossl.sh.zip"

sudo unzip -o /usr/local/bin/autossl.sh.zip -d /usr/local/bin/
sudo rm -f /usr/local/bin/autossl.sh.zip
sudo chmod +x /usr/local/bin/autossl.sh

确认安装结果:

autossl.sh --version
autossl.sh --help

默认数据目录是 ~/.autossl/,可通过 AUTOSSL_HOME 自定义:

~/.autossl/
├── account.conf
├── certs/
│ └── example.com-CERT_ID/
│ ├── order.conf
│ ├── example.com.key
│ ├── example.com.csr
│ ├── example.com.cer
│ ├── ca.cer
│ └── fullchain.cer
├── certs-backup/
├── cron.log
├── cron-last-run.json
└── logs/

权限建议:

  • ~/.autossl/700
  • account.conf600
  • 私钥文件:600

如果通过软链调用,脚本会自动定位真实目录,并加载同目录下的 dnsapi/deploy/email/

绑定 API 账号

首次使用需要把平台 API Key 保存到当前服务器。命令会写入 ~/.autossl/account.conf,后续签发、续费、重签和吊销会自动读取。

autossl.sh --register-account \
-m your-email@example.com \
--eab-kid YOUR_ACCESS_KEY_ID \
--eab-hmac-key YOUR_ACCESS_KEY_SECRET

正常使用无需传 --server。只有对接私有部署、特殊分销站 API 或本地测试环境时,才需要显式指定 API 地址:

autossl.sh --register-account \
-m your-email@example.com \
--eab-kid YOUR_ACCESS_KEY_ID \
--eab-hmac-key YOUR_ACCESS_KEY_SECRET \
--server https://api.example.com

也可以直接运行交互向导:

autossl.sh

向导会提示选择“输入 accessKey”或“浏览器登录”。浏览器登录会在本机启动临时回调服务,默认监听 127.0.0.1:35887,授权完成后自动写入本地账号文件。

相关变量:

变量说明
AUTOSSL_BROWSER_BIND_DISABLE=1禁用浏览器登录
AUTOSSL_BROWSER_BIND_HOST回调监听地址
AUTOSSL_BROWSER_BIND_PORT回调监听端口
AUTOSSL_BROWSER_AUTH_ORIGIN授权页地址

查看产品

签发前可先查看可用产品 ID 和购买周期:

autossl.sh --list-products

后续命令中的 --product 使用产品 ID,--period 使用购买周期。未指定时,客户端会进入交互选择。

签发域名证书

DNS 验证适合自动化签发,尤其是多域名和通配符证书。

autossl.sh --issue \
-d example.com \
-d www.example.com \
--dns dns_ali \
--product PRODUCT_CODE \
--period annually

常用参数:

参数说明
-d, --domain证书域名,可重复传入
--dnsDNS 插件名,例如 dns_alidns_cfdns_tencent
--product产品 ID,不传则交互选择
--period购买周期,不传则交互选择
-k, --keylength私钥规格:20484096ec-256ec-384
--notify-url签发完成后的业务回调地址
--dnssleepDNS 记录添加后等待传播的秒数,默认 20

首次使用某个 DNS 插件时,脚本会提示输入该 DNS 服务商的 API Key / Secret,并在验证成功后保存到 ~/.autossl/account.conf,下次无需重复输入。

签发流程:

  1. 生成私钥和 CSR。
  2. 调用平台接口创建订单。
  3. 获取 DCV 信息。
  4. 调用 DNS 插件添加 TXT 记录。
  5. 等待 DNS 传播。
  6. 触发 DCV 验证。
  7. 轮询签发状态。
  8. 下载证书。
  9. 清理 TXT 记录。
  10. 执行输出、部署、重载。

签发 IP 证书或 HTTP 验证证书

IP 证书必须使用 HTTP 文件验证,并指定 -w--webroot。验证文件会写入站点根目录下的 .well-known/pki-validation/

autossl.sh --issue \
-d 203.0.113.5 \
-w /var/www/html \
--product PRODUCT_CODE \
--period annually

域名证书也可以用 HTTP 验证:

autossl.sh --issue \
-d www.example.com \
-w /var/www/html \
--product PRODUCT_CODE \
--period annually

如果一张证书包含多个域名且站点目录不同,可以重复指定 Webroot:

autossl.sh --issue \
-d example.com \
-d www.example.com \
-w example.com:/var/www/example \
-w www.example.com:/var/www/www-example \
--product PRODUCT_CODE \
--period annually

自动扫描 Webroot:

autossl.sh --issue -d example.com -w auto

HTTPS DCV 独立目录:

autossl.sh --issue \
-d example.com \
-w /var/www/http \
--webroot-https /var/www/https \
--product PRODUCT_CODE \
--period annually

HTTP 验证流程:

  1. 下单时设置 http DCV。
  2. 获取验证文件路径和内容。
  3. 写入 Webroot。
  4. curl 检查公网访问。
  5. 触发 DCV 验证。
  6. 签发后删除验证文件。

邮件 DCV 自动验证

邮件 DCV 默认开启,主要用于通配符域名。

逻辑:

  1. *.example.com 取基域名 example.com
  2. 检查 MX/A 是否指向本机公网 IPv4。
  3. 使用 admin@example.com
  4. 优先配置 Postfix 收信。
  5. 失败则启动 Python SMTP 监听器。
  6. 提取 CA 邮件中的链接或验证码。
  7. 自动提交验证。

支持 CA:

  • Sectigo / Comodo
  • GlobalSign / AlphaSSL
  • SSL.com

关闭邮件 DCV:

autossl.sh --issue -d '*.example.com' --dns dns_ali --no-email-dcv

或:

export AUTOSSL_EMAIL_DCV_AUTO=0

注意:

  • CA 固定投递到 25 端口。
  • --email-dcv-port 已废弃。
  • 25 端口不可达时,会回退到其它验证方式。

输出证书文件

默认输出到本地订单目录:

~/.autossl/certs/PRIMARY_DOMAIN-CERT_ID/

复制到目录:

autossl.sh --issue \
-d example.com \
--dns dns_cf \
--output /etc/ssl/example.com

复制到指定文件:

autossl.sh --issue \
-d example.com \
--dns dns_cf \
--cert-file /etc/ssl/example.com/cert.pem \
--key-file /etc/ssl/example.com/key.pem \
--ca-file /etc/ssl/example.com/ca.pem \
--fullchain-file /etc/ssl/example.com/fullchain.pem

签发后执行命令:

autossl.sh --issue \
-d example.com \
--dns dns_cf \
--reloadcmd "systemctl reload nginx"

打印 PEM:

autossl.sh --issue -d example.com --dns dns_cf --print-cert
autossl.sh --issue -d example.com --dns dns_cf --print-key

签发后部署

签发时可以把证书直接部署到 Nginx、Apache、Tomcat 或自定义路径。部署参数会保存到本地订单目录,后续 --renew--reissue 和 Cron 自动补发会复用同一套部署方案。

通用参数:

参数说明
--deploy TYPEnginxapachetomcatotherskip 或模块名
--deploy-cert PATH目标证书路径
--deploy-key PATH目标私钥路径
--deploy-chain PATH目标 CA 链路径
--deploy-reloadcmd CMD部署后重载命令
--deploy-reload立即重载
--no-deploy-reload只写文件,不重载
--deploy-plan只展示计划
--deploy-dry-run只模拟流程

Nginx 示例:

autossl.sh --issue \
-d www.example.com \
--dns dns_ali \
--product PRODUCT_CODE \
--period annually \
--deploy nginx \
--deploy-cert /etc/nginx/ssl/www.example.com.cer \
--deploy-key /etc/nginx/ssl/www.example.com.key \
--deploy-reloadcmd "nginx -s reload" \
--deploy-reload

Nginx 部署会复制 fullchain.cer 和私钥,执行 nginx -t,失败时回滚配置备份。

Apache 示例:

autossl.sh --issue \
-d www.example.com \
--dns dns_ali \
--deploy apache \
--deploy-cert /etc/httpd/ssl/www.example.com.cer \
--deploy-key /etc/httpd/ssl/www.example.com.key \
--deploy-chain /etc/httpd/ssl/ca.cer \
--deploy-reloadcmd "systemctl reload httpd" \
--deploy-reload

未指定 --deploy-chain 时,Apache 的 --deploy-cert 默认写入 fullchain.cer

Tomcat 示例:

autossl.sh --deploy tomcat \
--cert-id CERT_ID \
--deploy-jks /opt/tomcat/conf/autossl.jks \
--deploy-jks-pass changeit \
--deploy-key-alias autossl \
--deploy-reloadcmd "systemctl restart tomcat" \
--deploy-reload

Tomcat 依赖 keytool,会生成 PKCS12 后转换为 JKS。默认密码 changeit,默认 alias autossl

自定义路径:

autossl.sh --deploy other \
--cert-id CERT_ID \
--deploy-cert /opt/app/cert.pem \
--deploy-key /opt/app/key.pem \
--deploy-chain /opt/app/fullchain.pem \
--deploy-reloadcmd "systemctl reload app" \
--deploy-reload

只查看部署计划,不写文件、不重载服务:

autossl.sh --deploy nginx --cert-id CERT_ID --deploy-plan

单独对已签发证书执行部署:

autossl.sh --deploy nginx \
--cert-id CERT_ID \
--deploy-cert /etc/nginx/ssl/www.example.com.cer \
--deploy-key /etc/nginx/ssl/www.example.com.key \
--deploy-reloadcmd "nginx -s reload" \
--deploy-reload

自定义部署模块

部署模块文件:

deploy/MODULE.sh

调用:

autossl.sh --deploy ssh --cert-id CERT_ID

脚本会传入:

DEPLOY_CERT_PATH
DEPLOY_KEY_PATH
DEPLOY_CHAIN_PATH
DEPLOY_DOMAIN
DEPLOY_TARGET_CERT_PATH
DEPLOY_TARGET_KEY_PATH
DEPLOY_TARGET_CHAIN_PATH
DEPLOY_RELOADCMD
DEPLOY_DO_RELOAD

内置模块:

模块用途必要配置
aliyun_cdn阿里云 CDNDEPLOY_ALIYUN_CDN_AKDEPLOY_ALIYUN_CDN_SK
aliyun_esa阿里云 ESADEPLOY_ALIYUN_ESA_AKDEPLOY_ALIYUN_ESA_SKDEPLOY_ALIYUN_ESA_SITE_ID
aliyun_waf阿里云 WAFDEPLOY_ALIYUN_WAF_AKDEPLOY_ALIYUN_WAF_SKDEPLOY_ALIYUN_WAF_INSTANCE
qiniu_cdn七牛云 CDNDEPLOY_QINIU_AKDEPLOY_QINIU_SK
sshSSH 远程主机DEPLOY_SSH_HOSTDEPLOY_SSH_CERT_PATHDEPLOY_SSH_KEY_PATH
synology群晖 NASDEPLOY_SYNO_HOSTDEPLOY_SYNO_USERNAMEDEPLOY_SYNO_PASSWORD
tencent_cdn腾讯云 CDNDEPLOY_TENCENT_CDN_IDDEPLOY_TENCENT_CDN_KEY
tencent_edgeone腾讯云 EdgeOneDEPLOY_TENCENT_TEO_IDDEPLOY_TENCENT_TEO_KEYDEPLOY_TENCENT_TEO_ZONE

配置可写入 ~/.autossl/account.conf

DEPLOY_SSH_HOST='1.2.3.4'
DEPLOY_SSH_USER='root'
DEPLOY_SSH_KEY='/root/.ssh/id_rsa'
DEPLOY_SSH_CERT_PATH='/etc/nginx/ssl/cert.pem'
DEPLOY_SSH_KEY_PATH='/etc/nginx/ssl/key.pem'
DEPLOY_SSH_CHAIN_PATH='/etc/nginx/ssl/fullchain.pem'
DEPLOY_SSH_RELOADCMD='systemctl reload nginx'

DNS 插件

插件目录:

dnsapi/

文件名:

dns_xxx.sh

命令中使用文件基名:

autossl.sh --issue -d example.com --dns dns_ali
autossl.sh --issue -d example.com --dns dns_cf
autossl.sh --issue -d example.com --dns dns_tencent

常见凭据:

插件凭据
dns_aliAli_KeyAli_Secret
dns_cfCF_TokenCF_Key + CF_Email
dns_tencentTencent_SecretIdTencent_SecretKey
dns_dpDP_IdDP_Key
dns_awsAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY
dns_gdGD_KeyGD_Secret
dns_namesiloNamesilo_Key
dns_vultrVULTR_API_KEY
dns_gcloudCLOUDSDK_ACTIVE_CONFIG_NAME

凭据读取顺序:

  1. 环境变量。
  2. ~/.autossl/account.conf
  3. 交互输入。

DNS 添加成功后才会保存交互输入的凭据。

自定义插件必须实现:

dns_xxx_add() {
local fullname="$1"
local type="$2"
local value="$3"
}

dns_xxx_rm() {
local fullname="$1"
local type="$2"
local value="$3"
}

约定:成功返回 0

查询、下载和验证

查询证书状态:

autossl.sh --status --cert-id CERT_ID

触发 DCV 验证:

autossl.sh --verify-dcv --cert-id CERT_ID

下载已签发证书:

autossl.sh --download --cert-id CERT_ID --output /etc/ssl/www.example.com

也可以分别指定输出文件:

autossl.sh --download \
--cert-id CERT_ID \
--cert-file /etc/nginx/ssl/www.example.com.cer \
--key-file /etc/nginx/ssl/www.example.com.key \
--ca-file /etc/nginx/ssl/ca.cer \
--fullchain-file /etc/nginx/ssl/fullchain.cer

下载接口只返回证书和 CA。私钥来自本地订单目录。

列出本地订单:

autossl.sh --list

修改 DCV 方式

如果订单已创建,但需要把某个域名从 DNS 验证切换为 HTTP、HTTPS、CLM 或邮箱验证,可使用 --update-dcv

单个域名:

autossl.sh --update-dcv \
--cert-id CERT_ID \
--dcv-domain www.example.com \
--dcv-type http

邮件验证可指定邮箱:

autossl.sh --update-dcv \
--cert-id CERT_ID \
--dcv-domain '*.example.com' \
--dcv-type email \
--dcv-value admin@example.com

批量指定:

autossl.sh --update-dcv \
--cert-id CERT_ID \
--domain-dcv "example.com=dns,www.example.com=http"

修改后可继续触发验证:

autossl.sh --verify-dcv --cert-id CERT_ID

支持类型:dnshttphttpsclmemail

断点恢复

签发过程如果因为网络、余额、DNS 传播或终端中断失败,修复问题后使用 --resume 继续。恢复模式会跳过已完成的下单步骤,继续处理验证、轮询和下载。

autossl.sh --issue --resume \
--cert-id CERT_ID \
--dns dns_ali

重签和续费也支持恢复:

autossl.sh --reissue --resume --cert-id CERT_ID --dns dns_ali
autossl.sh --renew --resume --cert-id CERT_ID --dns dns_ali

重签证书

重签用于替换 CSR、重新生成私钥、修正订单信息或按 CA 要求补发证书。

autossl.sh --reissue \
--cert-id CERT_ID \
--dns dns_ali

需要更换密钥规格或域名时,可以显式覆盖:

autossl.sh --reissue \
--cert-id CERT_ID \
-d example.com \
-d www.example.com \
--dns dns_ali \
-k ec-256

重签会复用本地保存的验证方式、输出路径、部署配置。

续费证书

续费可指定订单,也可不传 --cert-id 进入交互选择。

autossl.sh --renew --cert-id CERT_ID --dns dns_ali
autossl.sh --renew

续费成功后,客户端会备份旧订单目录,并在原目录名上创建软链指向新订单目录。这样 Nginx、Apache 等外部服务如果引用的是原证书路径,通常无需修改配置。

服务端可能返回:

  • reissue:原订单内重签。
  • new_order:创建新订单并迁移本地目录。

自动续签补发

安装 Cron 后,AutoSSL.sh 会每天检查本地订单。达到续签阈值或服务端标记需要补发时,会自动续费/重签、下载证书,并执行首次签发时保存的部署和重载命令。

安装每日任务:

autossl.sh --install-cronjob

手动执行一次检查:

autossl.sh --cron --renew-days 14

详细模式:

autossl.sh --cron --verbose

查看日志:

tail -f ~/.autossl/cron.log

卸载任务:

autossl.sh --uninstall-cronjob

建议首次签发时就写完整部署参数,否则 Cron 只能完成证书补发和下载,无法自动覆盖线上服务证书或重载服务。

检查逻辑:

  1. 获取 ~/.autossl/.cron.lock
  2. 遍历 ~/.autossl/certs/*/order.conf
  3. 本地证书到期天数 <= --renew-days 时处理。
  4. 服务端返回 replace_required=true 时处理。
  5. 单订单 re-exec 自身。
  6. 复用保存的验证和部署配置。

状态文件:

~/.autossl/cron-last-run.json

单订单超时:

export AUTOSSL_CRON_ORDER_TIMEOUT=900

吊销证书

旧证书不再使用时可以吊销。吊销后证书立即失效,请先确认业务已经切换到新证书。

autossl.sh --revoke --cert-id CERT_ID

可指定吊销原因:

autossl.sh --revoke --cert-id CERT_ID --revoke-reason 4

--revoke-reason 支持:

原因
0unspecified
1keyCompromise
3affiliationChanged
4superseded
5cessationOfOperation

不指定时会交互选择。符合退款规则的订单会按平台规则退款,否则仅吊销。

仅删除本地订单:

autossl.sh

进入“本地订单管理”,选择删除。本操作不调用服务端吊销接口。

交互式向导

入口:

autossl.sh

功能:

  1. 账户预检。
  2. 签发新证书。
  3. 重签已有证书。
  4. 续费证书。
  5. 本地订单管理。

签发向导可从 Nginx、Apache、Tomcat 读取站点、域名、Webroot 和部署路径。

日志:

~/.autossl/logs/ui-YYYYMMDD-HHMMSS.log

常用完整流程

DNS 签发并部署 Nginx:

autossl.sh --issue \
-d example.com \
-d www.example.com \
--dns dns_cf \
--product PRODUCT_CODE \
--period annually \
--deploy nginx \
--deploy-cert /etc/nginx/ssl/example.com/fullchain.pem \
--deploy-key /etc/nginx/ssl/example.com/key.pem \
--deploy-reloadcmd "nginx -s reload" \
--deploy-reload

HTTP 签发 IP 证书:

autossl.sh --issue \
-d 203.0.113.10 \
-w /var/www/html \
--product PRODUCT_CODE \
--period annually

远程 SSH 部署:

autossl.sh --issue \
-d example.com \
--dns dns_cf \
--deploy ssh \
--deploy-reload

常用选项速查

选项说明
--server URLAPI 基础地址,默认 https://api.trustserver.cn
--eab-kid KIDAccessKeyId
--eab-hmac-key SECRETAccessKeySecret
-m, --accountemail EMAIL联系邮箱
-d, --domain DOMAIN添加域名,可重复
--dns DNS_PLUGINDNS 插件名
-w, --webroot DIRHTTP DCV 验证目录
--webroot-https DIRHTTPS DCV 验证目录
--email-dcv开启邮件 DCV
--no-email-dcv关闭邮件 DCV
--dnssleep SECONDSDNS 传播等待秒数
--product PRODUCT_ID产品 ID
--period PERIOD购买周期
--cert-id ID证书订单 ID
--resume恢复未完成流程
--notify-url URL签发完成回调
-k, --keylength BITS20484096ec-256ec-384
--output DIR证书输出目录
--cert-file PATH证书文件输出路径
--key-file PATH私钥文件输出路径
--ca-file PATHCA 链输出路径
--fullchain-file PATH全链输出路径
--reloadcmd CMD签发后执行命令
--print-cert打印证书
--print-key打印私钥
--deploy TYPEnginxapachetomcatotherskip 或部署模块名
--deploy-cert PATH部署证书路径
--deploy-key PATH部署私钥路径
--deploy-chain PATH部署证书链路径
--deploy-jks PATHTomcat JKS 路径
--deploy-jks-pass PASSTomcat JKS 密码
--deploy-key-alias ALIASTomcat alias
--deploy-reloadcmd CMD部署后重载命令
--deploy-reload部署后立即重载服务
--no-deploy-reload部署后不重载
--deploy-plan只展示部署计划
--deploy-dry-run只模拟部署
--status查询证书状态
--verify-dcv手动触发 DCV
--update-dcv修改 DCV 方式
--dcv-domain DOMAIN单域名 DCV 修改目标
--dcv-type TYPEDCV 类型
--dcv-value VALUEDCV 值
--domain-dcv MAPPING批量 DCV 映射
--download下载证书
--list本地订单列表
--list-products产品列表
--revoke吊销/退款
--revoke-reason REASON吊销原因
--cron执行自动检查
--install-cronjob安装 Cron
--uninstall-cronjob卸载 Cron
--renew-days DAYS到期前多少天自动续签,默认 14
--force强制执行
--debug输出调试信息
--verbose输出详细日志

环境变量

变量说明
AUTOSSL_HOME配置根目录
AUTOSSL_API_RETRIESAPI 重试次数,默认 3
AUTOSSL_CONFIG_LOCK_WAIT配置锁等待秒数,默认 30
AUTOSSL_CRON_ORDER_TIMEOUTCron 单订单超时,默认 900
AUTOSSL_EMAIL_DCV_AUTO邮件 DCV 默认开关
AUTOSSL_SERVER_IPV4指定本机公网 IPv4
AUTOSSL_EMAIL_DCV_WAIT_SECONDS邮件 DCV 等待时间,默认 420
AUTOSSL_EMAIL_DCV_POLL_INTERVAL邮件轮询间隔,默认 5
AUTOSSL_EMAIL_DCV_SKIP_PORT_CHECK跳过 25 端口检查
AUTOSSL_EMAIL_DCV_LISTENER_TIMEOUT内置 SMTP 存活时间,默认 900
AUTOSSL_BROWSER_BIND_DISABLE禁用浏览器绑定
AUTOSSL_BROWSER_BIND_HOST浏览器绑定监听地址
AUTOSSL_BROWSER_BIND_PORT浏览器绑定监听端口
AUTOSSL_BROWSER_AUTH_ORIGIN浏览器授权页地址
AUTOSSL_DNS_PLUGIN_ASYNCDNS 插件菜单异步加载开关
AUTOSSL_DNS_PLUGIN_BATCH_SIZEDNS 插件菜单批量加载数
AUTOSSL_LIB_MODE作为库 source 时不执行 main

退出码

退出码含义
0成功
1用户主动退出
2参数错误
3业务失败

排查建议

问题根因处理
未配置账号account.conf 缺少 EMAILEAB_KIDEAB_HMAC_KEY重新执行 --register-account
API 认证失败API Key 未启用、IP 白名单不匹配、--server 错误检查控制台配置和 API 地址
余额不足账户余额不够充值后执行 --resume
DNS 插件不存在--dns 名称和 dnsapi/dns_xxx.sh 不一致检查插件文件名
DNS 验证失败TXT 未传播、DNS 凭据错误、域名不在账号下dig TXT _acme-challenge.example.com @8.8.8.8
HTTP 验证失败Webroot 错、80/443 不通、代理改写验证文件检查公网验证 URL
邮件 DCV 失败MX/A 未指向本机、25 端口不可达修正 DNS 或改用 DNS/HTTP
Nginx 部署失败nginx -t 失败、目标路径无权限、server 块未匹配先执行 --deploy-plan
Cron 未续签order.conf、缺少验证配置、未到阈值、锁未释放执行 autossl.sh --cron --verbose