
stephenneal/certbotCertbot Docker镜像是EFF(电子前哨基金会)开发的Certbot工具的容器化版本。Certbot是一款开源工具,用于自动获取、部署和续期Let's Encrypt提供的免费SSL/TLS证书,旨在简化HTTPS配置流程。该Docker镜像封装了Certbot的核心功能,提供跨平台、隔离化的运行环境,适用于各类需要SSL证书的Web服务场景。
需临时暴露80端口,让Let's Encrypt服务器访问验证文件:
bashdocker run -it --rm \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/www/html:/var/www/html" \ -p 80:80 \ certbot/certbot certonly \ --webroot \ --webroot-path=/var/www/html \ --email *** \ --agree-tos \ --no-eff-email \ -d example.com \ -d [***]
需手动添加DNS TXT记录完成域名验证:
bashdocker run -it --rm \ -v "/etc/letsencrypt:/etc/letsencrypt" \ certbot/certbot certonly \ --manual \ --preferred-challenges dns \ --email *** \ --agree-tos \ -d "*.example.com" \ -d example.com
bashdocker run -it --rm \ -v "/etc/letsencrypt:/etc/letsencrypt" \ certbot/certbot renew
yamlversion: '3' services: certbot: image: certbot/certbot volumes: - ./letsencrypt:/etc/letsencrypt # 持久化存储证书 - ./webroot:/var/www/html # Web根目录(用于HTTP验证) ports: - "80:80" # 暴露80端口用于验证 command: certonly \ --webroot \ --webroot-path=/var/www/html \ --email *** \ --agree-tos \ --no-eff-email \ -d example.com \ -d [***]
| 参数 | 说明 |
|---|---|
--webroot | 使用Webroot验证方式,需配合--webroot-path指定验证文件存放目录 |
--manual | 手动模式,适合DNS验证等需要用户交互的场景 |
--renew-by-default | 强制续期证书(即使未过期) |
--dry-run | 测试模式,不实际申请证书,用于验证配置有效性 |
--config-dir | 指定配置文件目录(默认/etc/letsencrypt) |
--email | 用于接收证书续期通知的***(必填) |
-d | 指定申请证书的域名(可多次使用指定多域名) |
证书默认存储在/etc/letsencrypt/live/<domain>/目录下,核心文件包括:
fullchain.pem: 完整证书链(服务器证书+中间CA证书)privkey.pem: 私钥文件(需严格保护)cert.pem: 服务器证书chain.pem: 中间CA证书-v参数将/etc/letsencrypt目录挂载到本地存储,避免容器删除导致证书丢失0700,私钥文件权限设置为0600,防止未授权访问certbot renew)http://<domain>/.well-known/acme-challenge/路径)--dry-run参数测试,避免因配置错误触发Let's Encrypt的请求频率限制





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