本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

镜像名称:certbot/dns-cloudflare(基于Certbot官方镜像构建)
官方维护:Electronic Frontier Foundation (EFF)
核心用途:该镜像为Certbot的官方Docker镜像,集成了Cloudflare DNS插件,用于通过DNS-01挑战(DNS-01 challenge)自动获取、续期SSL/TLS证书。适用于使用Cloudflare DNS服务的域名,无需暴露服务器80/443端口即可完成域名验证。
*.example.com等通配符域名申请证书(ACME协议要求通配符证书必须通过DNS-01验证)。a.example.com、b.example.com)申请证书。Zone:Read(读取域名区域信息)DNS:Edit(修改DNS记录,用于添加/删除TXT记录)| 环境变量名 | 说明 | 是否必填 |
|---|---|---|
CF_DNS_API_TOKEN | Cloudflare API令牌(推荐),需包含DNS:Edit和Zone:Read权限 | 是 |
CF_ZONE_API_TOKEN | (可选)仅用于指定区域的令牌,优先级高于CF_DNS_API_TOKEN | 否 |
CF_API_EMAIL | Cloudflare账户邮箱(传统API密钥模式使用,与CF_API_KEY配合) | 否 |
CF_API_KEY | Cloudflare全局API密钥(传统模式,不推荐,优先使用API令牌) | 否 |
CERTBOT_EMAIL | 用于接收证书过期通知的邮箱地址 | 是 |
| 参数 | 说明 |
|---|---|
certonly | 仅申请证书(不自动安装到服务器) |
--dns-cloudflare | 指定使用Cloudflare DNS插件 |
--dns-cloudflare-credentials | (可选)指定包含Cloudflare凭据的配置文件路径(替代环境变量) |
--non-interactive | 非交互式模式(适合自动化脚本) |
--agree-tos | 同意ACME服务条款 |
--email | 指定管理员邮箱(同CERTBOT_EMAIL环境变量,命令行参数优先级更高) |
-d | 指定目标域名(支持多个,如-d example.com -d *.example.com) |
docker run获取证书docker run --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ # 挂载证书存储目录(持久化证书) -v /var/lib/letsencrypt:/var/lib/letsencrypt \ # 挂载Certbot工作目录 -e "CF_DNS_API_TOKEN=your_cloudflare_api_token" \ # Cloudflare API令牌 -e "CERTBOT_EMAIL=***" \ # 管理员邮箱 certbot/dns-cloudflare \ certonly \ --dns-cloudflare \ --non-interactive \ --agree-tos \ -d example.com \ -d *.example.com
Certbot默认会检查证书有效期(剩余30天内自动续期),可通过以下命令手动触发续期:
docker run --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ -v /var/lib/letsencrypt:/var/lib/letsencrypt \ -e "CF_DNS_API_TOKEN=your_cloudflare_api_token" \ certbot/dns-cloudflare \ renew \ --non-interactive
创建docker-compose.yml文件:
version: '3.8' services: certbot: image: certbot/dns-cloudflare volumes: - ./letsencrypt:/etc/letsencrypt # 本地目录挂载,持久化证书 - ./letsencrypt-lib:/var/lib/letsencrypt # 工作目录 environment: - CF_DNS_API_TOKEN=your_cloudflare_api_token # 替换为实际API令牌 - CERTBOT_EMAIL=*** # 替换为实际邮箱 command: > certonly --dns-cloudflare --non-interactive --agree-tos -d example.com -d *.example.com
启动容器申请证书:
docker-compose up
容器内证书默认存储于/etc/letsencrypt,通过卷挂载到宿主机后,可在宿主机路径(如/etc/letsencrypt)中查看:
/etc/letsencrypt/live/example.com/fullchain.pem/etc/letsencrypt/live/example.com/privkey.pemCertbot证书默认有效期为90天,建议通过定时任务(如crontab)自动续期:
/opt/certbot/renew.sh:#!/bin/bash docker run --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ -v /var/lib/letsencrypt:/var/lib/letsencrypt \ -e "CF_DNS_API_TOKEN=your_cloudflare_api_token" \ certbot/dns-cloudflare renew --non-interactive
chmod +x /opt/certbot/renew.sh
echo "0 3 * * * /opt/certbot/renew.sh >> /var/log/certbot-renew.log 2>&1" | crontab -
Zone:Read和DNS:Edit权限,避免因权限不足导致验证失败。/etc/letsencrypt目录需持久化存储(通过Docker卷挂载),防止容器删除后证书丢失。docker logs <容器ID>查看证书申请/续期过程中的详细日志,用于排查错误。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429