
certbot/dns-rfc2136本镜像为电子前哨基金会(EFF)Certbot工具的官方Docker构建,专注于提供DNS验证支持,通过RFC 2136动态更新协议完成域名所有权验证。Certbot是一款自动化工具,用于从Let's Encrypt等证书颁发机构(CA)获取和续期SSL/TLS证书,本镜像特别适用于需要通过DNS记录验证而非HTTP/HTTPS端口验证的场景。
certbot-dns-rfc2136插件,通过RFC 2136动态更新协议添加/删除DNS TXT记录完成域名验证*.example.com)批量申请证书准备TSIG密钥文件(如rfc2136-tsig.key),格式示例:
ini# 密钥文件格式:key "名称" { algorithm 算法; secret "密钥值"; }; key "certbot-update" { algorithm hmac-sha256; secret "abc123xyz456+/="; };
运行容器获取证书(首次申请):
bashdocker run -it --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ # 挂载证书存储目录 -v /var/lib/letsencrypt:/var/lib/letsencrypt \ # 挂载工作目录 -v /path/to/rfc2136-tsig.key:/etc/certbot/tsig.key:ro \ # 挂载TSIG密钥(只读) certbot/dns-rfc2136 certonly \ --dns-rfc2136 \ --dns-rfc2136-server=ns.example.com:53 \ # DNS服务器地址:端口 --dns-rfc2136-zone=example.com \ # 域名对应的DNS zone --dns-rfc2136-tsig-key=/etc/certbot/tsig.key \ # TSIG密钥文件路径 --agree-tos \ --email *** \ # 管理员***(用于证书过期通知) -d example.com -d *.example.com # 目标域名(支持泛域名)
验证证书:证书默认存储于/etc/letsencrypt/live/example.com/,包含fullchain.pem(证书链)和privkey.pem(私钥)
| 参数 | 类型 | 描述 | 示例值 |
|---|---|---|---|
--dns-rfc2136 | 命令行开关 | 启用RFC 2136 DNS验证插件 | - |
--dns-rfc2136-server | 字符串 | DNS服务器地址(支持端口指定) | ns.example.com:53 |
--dns-rfc2136-zone | 字符串 | 域名对应的DNS zone(如example.com) | example.com |
--dns-rfc2136-tsig-key | 文件路径 | TSIG密钥文件绝对路径(容器内路径) | /etc/certbot/tsig.key |
--dns-rfc2136-tsig-axfr | 布尔开关 | 是否使用AXFR查询确认记录添加(可选) | --dns-rfc2136-tsig-axfr |
--dns-rfc2136-propagation-seconds | 整数 | DNS记录传播等待时间(秒) | 30(默认10秒) |
bashdocker run -it --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ -v /var/lib/letsencrypt:/var/lib/letsencrypt \ -v /path/to/rfc2136-tsig.key:/etc/certbot/tsig.key:ro \ certbot/dns-rfc2136 renew \ --dns-rfc2136 \ --dns-rfc2136-server=ns.example.com:53 \ --dns-rfc2136-zone=example.com \ --dns-rfc2136-tsig-key=/etc/certbot/tsig.key \ --dry-run # 测试续期(正式运行时移除)
yamlversion: '3.8' services: certbot-rfc2136: image: certbot/dns-rfc2136:v1.7.0 volumes: - /etc/letsencrypt:/etc/letsencrypt - /var/lib/letsencrypt:/var/lib/letsencrypt - ./rfc2136-tsig.key:/etc/certbot/tsig.key:ro command: > certonly --dns-rfc2136 --dns-rfc2136-server=ns.example.com:53 --dns-rfc2136-zone=example.com --dns-rfc2136-tsig-key=/etc/certbot/tsig.key --agree-tos --email *** -d example.com -d *.example.com restart: "no" # 证书申请为一次性任务,无需持续运行
/etc/letsencrypt目录需确保容器内UID(通常为0或1000)有读写权限,避免权限错误导致证书无法保存chmod 600),避免泄露-v /var/log/letsencrypt:/var/log/letsencrypt挂载可持久化日志,便于问题排查:v1.7.0),避免自动升级导致兼容性问题





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务