
certbot/dns-luadns本镜像为 Electronic Frontier Foundation (EFF) 官方构建的 Certbot Docker 镜像,集成了用于 DNS-01 挑战的 LuaDNS 插件。Certbot 是一款自动化工具,用于从 Let's Encrypt 等证书颁发机构获取和续期 SSL/TLS 证书。该镜像专门针对需要通过 LuaDNS 进行 DNS 验证的场景,提供证书申请、续期的全流程自动化支持。
版本信息:当前稳定版本 v1.7.0
官方仓库:certbot/certbot
*.example.com)LuaDNS 插件需通过环境变量传入 API 凭证,常用变量如下:
| 环境变量名 | 描述 | 是否必填 |
|---|---|---|
LUA_DNS_API_KEY | LuaDNS API 访问令牌(优先推荐,部分插件可能使用此参数) | 是 |
LUA_DNS_EMAIL | LuaDNS 账户***(若 API 认证需***+密码组合,与 LUA_DNS_PASSWORD 配合使用) | 否 |
LUA_DNS_PASSWORD | LuaDNS 账户密码(与 LUA_DNS_EMAIL 配合使用,仅部分认证方式需要) | 否 |
通过 docker run 命令执行证书申请,需挂载本地目录存储证书,并传入 LuaDNS 凭证:
bashdocker run -it --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ # 持久化证书和配置 -v /var/lib/letsencrypt:/var/lib/letsencrypt \ # 存储临时文件 -e "LUA_DNS_API_KEY=your_luadns_api_token" \ # 替换为实际 LuaDNS API Token certbot/dns-luadns:v1.7.0 \ certonly \ --dns-luadns \ # 指定使用 LuaDNS 插件 --dns-luadns-credentials /etc/letsencrypt/luadns.ini \ # 或通过文件传入凭证(二选一) -d example.com \ # 待验证域名(支持多个 -d 参数) -d *.example.com \ # 通配符域名(需 DNS-01 挑战) --email *** \ # 管理员***(用于证书到期通知) --agree-tos \ # 同意 Let's Encrypt 服务条款 --non-interactive # 非交互式运行(适合自动化脚本)
注意:若不使用环境变量,可通过
--dns-luadns-credentials指定凭证文件(格式见下文),文件内容需包含dns_luadns_api_key = your_token。
若通过文件传入 LuaDNS 凭证,需在宿主机创建 luadns.ini 文件(如 /etc/letsencrypt/luadns.ini),内容示例:
ini# /etc/letsencrypt/luadns.ini dns_luadns_api_key = your_luadns_api_token
运行时需挂载该文件,并通过 --dns-luadns-credentials 指定路径(如上述 docker run 命令所示)。
创建 docker-compose.yml 文件,定义证书申请服务:
yamlversion: '3.8' services: certbot-luadns: image: certbot/dns-luadns:v1.7.0 volumes: - ./letsencrypt/etc:/etc/letsencrypt # 本地目录挂载,持久化证书 - ./letsencrypt/lib:/var/lib/letsencrypt environment: - LUA_DNS_API_KEY=your_luadns_api_token # 替换为实际 API Token command: > certonly --dns-luadns -d example.com -d *.example.com --email *** --agree-tos --non-interactive --force-renewal # 强制续期(首次运行可移除)
启动命令:docker-compose up
bashdocker run -it --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ -v /var/lib/letsencrypt:/var/lib/letsencrypt \ -e "LUA_DNS_API_KEY=your_token" \ certbot/dns-luadns:v1.7.0 \ certonly --dns-luadns -d example.com
Certbot 默认会检查即将过期的证书(剩余 30 天内)并自动续期,可通过 renew 命令触发:
bashdocker run -it --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ -v /var/lib/letsencrypt:/var/lib/letsencrypt \ -e "LUA_DNS_API_KEY=your_token" \ certbot/dns-luadns:v1.7.0 \ renew --dns-luadns
bashdocker run -it --rm \ -v /etc/letsencrypt:/etc/letsencrypt \ certbot/dns-luadns:v1.7.0 \ revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem
-v /etc/letsencrypt:/etc/letsencrypt)持久化,避免容器重启后丢失。LUA_DNS_API_KEY)需妥善保管,避免暴露在日志或配置文件中(建议通过环境变量注入,而非硬编码)。--dns-luadns-propagation-seconds 参数(默认 10 秒,可调整为 30-60 秒)。





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