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

!Let's Encrypt Logo
基于letsencrypt基础镜像构建的Let's Encrypt证书自动获取与续期工具,通过webroot验证方式管理SSL证书。
本镜像提供了一种简单高效的方式,通过Let's Encrypt自动获取和续期SSL证书,采用webroot验证方式(即通过Web服务器的特定目录进行域名所有权验证)。适用于需要为Web服务(如Nginx、Apache等)配置HTTPS且希望自动管理证书生命周期的场景,避免手动操作证书续期的繁琐流程。
首先需配置Web服务器,确保其能正确响应/.well-known/acme-challenge路径的请求。以Nginx为例,添加如下配置:
location '/.well-known/acme-challenge' { default_type "text/plain"; # 设置默认MIME类型为纯文本 root /tmp/letsencrypt; # 指定验证文件存放目录(需与后续挂载路径一致) }
运行Web服务器容器时,需挂载两个卷以与letsencrypt-webroot容器共享:
-v /data/letsencrypt:/etc/letsencrypt # 存储证书的持久化目录 -v /data/letsencrypt-www:/tmp/letsencrypt # webroot验证目录(需与Web服务器配置的root一致)
执行以下命令启动证书管理容器,替换示例中的域名和邮箱:
docker run \ --name some-letsencrypt \ -v /data/letsencrypt:/etc/letsencrypt \ # 挂载证书存储目录 -v /data/letsencrypt-www:/tmp/letsencrypt \ # 挂载webroot验证目录 -e 'DOMAINS=example.com [***] \ # 需申请证书的域名(空格分隔多个域名) -e 'EMAIL=***' \ # 用于紧急通知和密钥恢复的邮箱 -e 'WEBROOT_PATH=/tmp/letsencrypt' \ # webroot验证目录路径(需与Web服务器配置一致) kvaps/letsencrypt-webroot
证书生成后,应用可通过以下路径访问证书文件:
/etc/letsencrypt/live/example.com/privkey.pem/etc/letsencrypt/live/example.com/cert.pem/etc/letsencrypt/live/example.com/chain.pem/etc/letsencrypt/live/example.com/fullchain.pem注意:必须完整挂载
/etc/letsencrypt目录,不可仅挂载/etc/letsencrypt/live子目录,否则该目录下证书文件的符号链接将无法正常工作!
可配置证书续期后的触发动作(如重载服务配置),实现依赖服务的自动更新。
挂载Docker Socket:需将主机的Docker Socket挂载到容器,以允许操作其他容器:
-v /var/run/docker.sock:/var/run/docker.sock
链接目标容器:通过--link参数链接需要操作的服务容器(如Nginx):
--link some-nginx # "some-nginx"为目标容器名称
设置续期钩子环境变量:通过LE_RENEW_HOOK环境变量定义触发动作,支持以下示例:
-e 'LE_RENEW_HOOK=docker kill -s HUP @CONTAINER_NAME@'
-e 'LE_RENEW_HOOK=docker restart @CONTAINER_NAME@'
注:
@CONTAINER_NAME@会自动替换为通过--link指定的容器名称。
以下是结合Nginx和letsencrypt-webroot的完整Docker Compose配置示例:
docker-compose.yml
nginx: restart: always # 容器退出时自动重启 image: nginx # 使用官方Nginx镜像 hostname: example.com # 主机名(需替换为实际域名) volumes: - /etc/localtime:/etc/localtime:ro # 同步主机时间 - ./nginx:/etc/nginx:ro # 挂载本地Nginx配置(只读) - ./letsencrypt/conf:/etc/letsencrypt # 共享证书目录 - ./letsencrypt/html:/tmp/letsencrypt # 共享webroot验证目录 ports: - 80:80 # HTTP端口(用于证书验证) - 443:443 # HTTPS端口 environment: - LE_RENEW_HOOK=docker kill -s HUP @CONTAINER_NAME@ # Nginx重载钩子(示例) letsencrypt: restart: always # 容器退出时自动重启 image: kvaps/letsencrypt-webroot # 当前letsencrypt镜像 volumes: - /etc/localtime:/etc/localtime:ro # 同步主机时间 - /var/run/docker.sock:/var/run/docker.sock # 挂载Docker Socket以操作其他容器 - ./letsencrypt/conf:/etc/letsencrypt # 证书存储目录(与Nginx共享) - ./letsencrypt/html:/tmp/letsencrypt # webroot验证目录(与Nginx共享) links: - nginx # 链接Nginx容器,用于续期钩子 environment: - DOMAINS=example.com [***] # 需申请证书的域名(空格分隔,替换为实际域名) - EMAIL=*** # 联系邮箱(替换为实际邮箱) - WEBROOT_PATH=/tmp/letsencrypt # webroot验证目录(需与Nginx配置一致) - EXP_LIMIT=30 # 证书到期前30天开始尝试续期(默认值) - CHECK_FREQ=30 # 每30天检查一次证书状态(默认值)
支持单次运行模式,即执行一次证书更新后立即退出容器,适用于通过外部定时任务(如Cron)触发的场景。只需在docker run命令末尾添加once参数:
docker run \ --name some-letsencrypt \ -v /data/letsencrypt:/etc/letsencrypt \ -v /data/letsencrypt-www:/tmp/letsencrypt \ -e 'DOMAINS=example.com [***] \ -e 'EMAIL=***' \ -e 'WEBROOT_PATH=/tmp/letsencrypt' \ kvaps/letsencrypt-webroot \ once # 单次运行模式
| 环境变量 | 说明 | 示例值 | 默认值 |
|---|---|---|---|
DOMAINS | 需申请证书的域名列表(空格分隔多个域名) | example.com [***] | 无(必填) |
EMAIL | 联系邮箱,用于接收证书到期通知及密钥恢复 | *** | 无(必填) |
WEBROOT_PATH | webroot验证目录路径(需与Web服务器配置的root一致) | /tmp/letsencrypt | /tmp/letsencrypt |
CHOWN | 证书文件的所有者(用户:组) | www-data:www-data | root:root |
CHMOD | 证书文件的权限(八进制格式) | 600 | 644 |
EXP_LIMIT | 证书到期前多少天开始尝试续期(整数) | 30 | 30 |
CHECK_FREQ | 证书续期检查频率(天数,整数) | 30 | 30 |
LE_RENEW_HOOK | 证书续期后的触发动作(需配合Docker Socket和--link使用) | docker restart @CONTAINER_NAME@ | 无 |
免费版仅支持 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