acme.sh 多域名管理

96

设置acme.sh泛域名证书:

步骤1:安装acme.sh

# 安装acme.sh
curl https://get.acme.sh | sh

# 重新加载环境变量
source ~/.bashrc

# 或者直接使用
~/.acme.sh/acme.sh --version

步骤2:配置Cloudflare API

# 设置Cloudflare API凭据
export CF_Email="your-email@example.com"
export CF_Key="your-cloudflare-global-api-key"

# 或者使用Token(推荐)
export CF_Token="your-cloudflare-api-token"

步骤3:申请泛域名证书

# 注册账户(使用你的真实邮箱)
~/.acme.sh/acme.sh --register-account -m your-email@example.com

# 或者使用Token方式(推荐)
~/.acme.sh/acme.sh --issue --dns dns_cf --server letsencrypt -d vlanhub.com -d "*.vlanhub.com"

步骤4:安装证书到nginx

# 创建SSL证书目录
mkdir -p /etc/nginx/ssl

# 安装证书
~/.acme.sh/acme.sh --install-cert -d vlanhub.com \
  --key-file /etc/nginx/ssl/vlanhub.com.key \
  --fullchain-file /etc/nginx/ssl/vlanhub.com.crt \
  --reloadcmd "systemctl reload nginx"

步骤5:设置自动续期

# 设置自动续期
~/.acme.sh/acme.sh --upgrade --auto-upgrade

# 检查定时任务
crontab -l | grep acme

获取Cloudflare API凭据:

方法1:使用Global API Key

  1. 登录Cloudflare控制台

  2. 进入 "My Profile" → "API Tokens"

  3. 复制 "Global API Key"

方法2:使用API Token(推荐)

  1. 登录Cloudflare控制台

  2. 进入 "My Profile" → "API Tokens"

  3. 点击 "Create Token"

  4. 选择 "Custom token"

  5. 权限设置:

  • Zone: Zone:Read

  • Zone: Zone Settings:Edit

  • Zone: DNS:Edit