acme.sh自动化申请证书自动续期
步骤 1: 安装 acme.sh
首先,确保 acme.sh 已经安装在您的系统中。
Bash
# 执行安装脚本。这里的 email 用于接收续期通知。
curl https://get.acme.sh | sh -s email=your_email@example.com
# 重新加载您的 Shell 配置文件,使 'acme.sh' 命令生效
source ~/.bashrc # 或 source ~/.zshrc,根据您的 Shell 环境选择
安装完成后,acme.sh 会自动在 /root/.acme.sh(如果是 root 用户安装)或 ~/.acme.sh 下创建相关文件,并设置好自动续期的 Cron Job。
步骤 2: 配置 DNS API 凭证
这是 DNS 验证的关键步骤。您需要设置环境变量,让 acme.sh 可以通过 API 自动登录您的 DNS 服务商(例如 Cloudflare)来创建和删除 TXT 记录。
以 Cloudflare (CF) 为例:
API Token 方式 (推荐):使用更安全的 API Token 和 Account ID。
Bash
export CF_Token="YOUR_CLOUDFLARE_API_TOKEN" export CF_Account_ID="YOUR_CLOUDFLARE_ACCOUNT_ID"Global API Key 方式 (不推荐):
Bash
export CF_Key="YOUR_GLOBAL_API_KEY" export CF_Email="YOUR_CLOUDFLARE_EMAIL"
📌 注意: 请根据您的 DNS 服务商选择正确的环境变量(例如阿里云是
Ali_Key和Ali_Secret)。
步骤 3: 申请证书
我们以申请通配符证书(*.example.com)和根域名证书(example.com)为例。
Bash
acme.sh --issue \
-d example.com \
-d *.example.com \
--dns dns_cf \
--server letsencrypt
--issue: 证书申请命令。-d: 指定域名。--dns dns_cf: 指定使用 Cloudflare DNS 插件进行验证。--server letsencrypt: 指定使用 Let's Encrypt CA。
运行成功后,您的证书文件将位于 ~/.acme.sh/example.com_ecc/ 目录下。
步骤 4: 自动化续期配置(核心)
acme.sh 在安装时已经为您创建了定时任务 (cron job),负责在后台检查证书是否需要续期。但我们还需要配置一个 部署钩子 (Deploy Hook),让它在续期成功后能自动更新您的 Web 服务器(如 Caddy 或 Nginx)。
1. 检查 Cron Job
运行以下命令确认自动续期任务已存在:
Bash
crontab -l | grep acme.sh
# 应该能看到类似下面的输出:
# 14 19 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Akari
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果