使用certbot/dns-cloudflare为authentik申请证书时参数报错问题
问题解决思路
首先,日志里出现--dns-cloudflare-credentials cloudflare.ini这个未识别参数,说明你的certbot命令里仍然包含这个参数——哪怕你在docker-compose.override.yml里注释了它,大概率是主配置文件docker-compose.yml的certbot服务命令里还保留着这个参数,而override.yml的配置是叠加而非完全替换主配置的命令。
你需要做这几件事:
- 完全覆盖certbot的命令参数:在
docker-compose.override.yml的certbot服务里,写全完整的command字段,把--dns-cloudflare-credentials cloudflare.ini彻底删掉。示例:command: certonly --dns-cloudflare --dns-cloudflare-propagation-seconds 60 -d your-authentik-domain.com --agree-tos --email your-email@example.com --non-interactive - 确认环境变量配置正确:确保
CLOUDFLARE_API_TOKEN已经在override.yml的certbot服务环境变量里正确设置,示例:environment: - CLOUDFLARE_API_TOKEN=your-cloudflare-api-token - 移除不必要的文件挂载:如果主配置里有挂载
cloudflare.ini的volume配置,在override.yml里把这部分也注释或删除,因为用环境变量验证不需要这个文件。
之所以会出现这个错误,是因为当你用CLOUDFLARE_API_TOKEN环境变量时,certbot的dns-cloudflare插件会直接读取这个环境变量,不需要再指定credentials文件路径——而命令里残留的--dns-cloudflare-credentials参数会被certbot识别为无效参数,导致进程退出。
内容的提问来源于stack exchange,提问作者Andreas Neumeier
相关产品推荐
相关产品推荐

