在使用 acme.sh
通过 Cloudflare DNS 验证来生成和管理 SSL/TLS 证书时,你需要配置正确的 Cloudflare API 密钥或 API 令牌。以下是具体步骤和配置文件的编写方法:
1. 确保已安装 acme.sh
如果还没有安装,可以运行以下命令安装:
curl https://get.acme.sh | sh
2. 获取 Cloudflare API Token
- 登录到你的 Cloudflare 控制台。
- 转到 My Profile > API Tokens。
- 创建一个新的 API Token,选择自定义令牌:
- 权限:Zone:DNS:Edit。
- 作用域:选择你需要管理的域名,或者选择 All Zones(所有域名)。
- 保存生成的 API Token。
3. 配置 Cloudflare API 凭据
方法 1:使用 export
环境变量
直接通过环境变量导出 API Token:
export CF_Token="your_cloudflare_api_token"
export CF_Account_ID="your_cloudflare_account_id" # 可选,部分场景需要
方法 2:通过配置文件设置
将 API Token 写入 ~/.acme.sh/account.conf
文件中:
CF_Token="your_cloudflare_api_token"
CF_Account_ID="your_cloudflare_account_id" # 可选
注意:
- 如果你使用的是旧版 API Key(全局 API Key),需要使用
CF_Key
和CF_Email
:export CF_Key="your_global_api_key" export CF_Email="your_email@example.com"
但推荐使用 API Token,更加安全。
4. 生成证书
使用以下命令生成证书并通过 Cloudflare DNS 验证:
acme.sh --issue --dns dns_cf -d yourdomain.com -d *.yourdomain.com
解释:
--dns dns_cf
指定使用 Cloudflare DNS 验证。-d yourdomain.com
表示主域名。-d *.yourdomain.com
表示通配符证书。
5. 安装证书
生成成功后,可以将证书安装到指定路径:
acme.sh --install-cert -d yourdomain.com \
--key-file /path/to/yourdomain.key \
--fullchain-file /path/to/yourdomain.crt
6. 自动更新
acme.sh
会默认启用自动更新,证书到期时会自动续期。如果需要手动续期:
acme.sh --renew -d yourdomain.com --force
完整示例配置
环境变量方式
export CF_Token="your_cloudflare_api_token"
export CF_Account_ID="your_cloudflare_account_id" # 可选
acme.sh --issue --dns dns_cf -d example.com -d *.example.com
配置文件方式
编辑 ~/.acme.sh/account.conf
:
CF_Token="your_cloudflare_api_token"
CF_Account_ID="your_cloudflare_account_id" # 可选
然后运行:
acme.sh --issue --dns dns_cf -d example.com -d *.example.com
通过上述方法配置后,acme.sh
将使用 Cloudflare DNS API 完成域名的自动验证和证书管理。
近期评论