专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

jonasal/nginx-certbot Docker 镜像 - 轩辕镜像

nginx-certbot
jonasal/nginx-certbot
几乎完全自动化的Nginx服务器,使用Let's Encrypt获取SSL证书。
41 收藏0 次下载activejonasal镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

docker-nginx-certbot 镜像文档

镜像概述

docker-nginx-certbot 是一个集成了 Nginx 和 Certbot 的 Docker 镜像,旨在简化 HTTPS 部署流程。该镜像实现了自动化获取、配置和续期 Let's Encrypt SSL 证书,无需手动干预证书管理,让用户能够快速搭建支持 HTTPS 的 Web 服务。

核心功能与特性

  • 自动化证书管理:自动向 Let's Encrypt 申请 SSL 证书,无需手动执行 Certbot 命令
  • 证书自动续期:内置定时任务,在证书过期前自动续期,确保服务持续使用有效证书
  • Nginx 无缝集成:预配置 Nginx 与 Certbot 协作,证书获取后自动应用到 Nginx 配置
  • 多域名支持:支持为单个服务配置多个域名,一次性申请多域名证书
  • 轻量级设计:基于官方 Nginx 镜像构建,保持精简的镜像体积
  • 灵活配置:支持自定义 Nginx 配置文件、证书存储路径及 Certbot 参数

使用场景与适用范围

  • 个人博客/网站:快速为个人站点部署 HTTPS,提升安全性
  • 小型企业服务:简化企业官网、内部系统的 HTTPS 配置流程
  • 开发测试环境:在开发阶段快速模拟生产环境的 HTTPS 配置
  • 临时项目:短期项目需要快速上线并支持 HTTPS 时的理想选择
  • 资源受限环境:适合服务器资源有限,需要自动化减少维护成本的场景

使用方法与配置说明

基本部署(docker run)
首次启动(申请证书)
bash
docker run -d \
  --name nginx-certbot \
  -p 80:80 \
  -p 443:443 \
  -e "DOMAINS=example.com [***]" \
  -e "EMAIL=***" \
  -v ./nginx/conf.d:/etc/nginx/conf.d \
  -v ./certbot/conf:/etc/letsencrypt \
  -v ./certbot/www:/var/www/certbot \
  jonasal/nginx-certbot
参数说明:
  • -p 80:80:映射 HTTP 端口(Let's Encrypt 验证需通过 80 端口)
  • -p 443:443:映射 HTTPS 端口
  • -e "DOMAINS=...":指定需要申请证书的域名,多个域名用空格分隔
  • -e "EMAIL=...":Let's Encrypt 注册***(用于证书过期通知及恢复)
  • 卷挂载:
    • ./nginx/conf.d:本地 Nginx 配置目录,映射到容器内 /etc/nginx/conf.d
    • ./certbot/conf:本地证书存储目录,映射到容器内 /etc/letsencrypt(持久化证书)
    • ./certbot/www:Let's Encrypt 验证文件目录,映射到容器内 /var/www/certbot
Docker Compose 部署

创建 docker-compose.yml 文件:

yaml
version: '3'

services:
  nginx-certbot:
    image: jonasal/nginx-certbot
    container_name: nginx-certbot
    ports:
      - "80:80"
      - "443:443"
    environment:
      - DOMAINS=example.com [***]
      - EMAIL=***
      - STAGING=0  # 1 启用测试环境(避免 Let's Encrypt 速率限制),0 禁用
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./certbot/conf:/etc/letsencrypt
      - ./certbot/www:/var/www/certbot
    restart: unless-stopped

启动服务:

bash
docker-compose up -d

环境变量配置

环境变量说明默认值
DOMAINS需申请证书的域名,多个域名用空格分隔(必填)无
EMAILLet's Encrypt 注册***(用于证书通知及恢复,必填)无
STAGING是否使用 Let's Encrypt 测试环境(1=启用,0=禁用)0
CERTBOT_ARGS传递给 Certbot 的额外参数(如 --rsa-key-size 4096 指定密钥长度)无
RENEW_BEFORE证书到期前多少天开始续期(单位:天)30
NGINX_CONF自定义 Nginx 主配置文件路径(容器内路径)/etc/nginx/nginx.conf

目录结构与卷挂载

推荐本地目录结构
./
├── docker-compose.yml
├── nginx/
│   └── conf.d/          # Nginx 站点配置目录(需手动创建)
│       └── example.conf # 自定义站点配置文件
└── certbot/
    ├── conf/            # 证书存储目录(自动生成)
    └── www/             # Let's Encrypt 验证文件目录(自动生成)
卷挂载说明
  • ./nginx/conf.d:/etc/nginx/conf.d:挂载自定义 Nginx 站点配置,需提前创建并添加站点配置文件(示例见下文)
  • ./certbot/conf:/etc/letsencrypt:持久化存储 Let's Encrypt 证书文件,避免容器重建后证书丢失
  • ./certbot/www:/var/www/certbot:Let's Encrypt ACME 验证文件存放目录,用于域名所有权验证

示例配置

Nginx 站点配置示例(./nginx/conf.d/example.conf)
nginx
server {
    listen 80;
    server_name example.com [***]

    # 将 HTTP 请求重定向到 HTTPS
    location / {
        return 301 [***]
    }

    # Let's Encrypt 验证文件访问路径
    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }
}

server {
    listen 443 ssl;
    server_name example.com [***]

    # SSL 证书配置(证书由 Certbot 自动生成,路径固定)
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
    # 推荐的 SSL 安全配置(可选)
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 网站根目录(根据实际需求修改)
    root /usr/share/nginx/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}
多域名支持示例

若需为多个独立域名配置证书,可在 DOMAINS 中指定多个域名(空格分隔),并为每个域名创建对应的 Nginx 配置文件。例如:

yaml
environment:
  - DOMAINS=example.com [***] blog.example.com

证书管理

证书申请流程
  1. 容器启动后,Certbot 会自动检查 DOMAINS 中指定的域名
  2. 若证书不存在,自动向 Let's Encrypt 发起申请,通过 HTTP-01 验证(利用 /.well-known/acme-challenge/ 路径)
  3. 验证通过后,证书保存至 /etc/letsencrypt/live/<主域名>/ 目录
  4. Nginx 自动加载证书,服务开始提供 HTTPS 访问
证书续期机制
  • 容器内置定时任务(cron),每日检查证书过期时间
  • 当证书剩余有效期小于 RENEW_BEFORE 天数(默认 30 天)时,自动执行续期操作
  • 续期完成后,Nginx 会自动 reload 配置,应用新证书

注意事项

  • 端口占用:确保主机的 80 和 443 端口未被其他服务占用,否则 Let's Encrypt 验证会失败
  • 域名解析:申请证书前需确保 DOMAINS 中指定的域名已正确解析至主机 IP
  • 速率限制:Let's Encrypt 对证书申请有速率限制,测试环境(STAGING=1)可避免触发限制
  • 配置修改:修改 Nginx 配置后,需重启容器或执行 docker exec nginx-certbot nginx -s reload 使配置生效
  • 数据备份:定期备份 ./certbot/conf 目录,防止证书文件丢失导致服务中断
查看更多 nginx-certbot 相关镜像 →
jonasal/devpi-server logo
jonasal/devpi-server
by jonasal
一个易于使用的devpi-server镜像,用于快速搭建Python包管理和私有PyPI服务,支持包缓存、版本控制及权限管理。
210K+ pulls
上次更新:24 天前
jonasal/kea-dhcp4 logo
jonasal/kea-dhcp4
by jonasal
ISC Kea DHCP服务的IPv4实例,提供Debian和Alpine两种版本。
450K+ pulls
上次更新:1 个月前
jonasal/kea-ctrl-agent logo
jonasal/kea-ctrl-agent
by jonasal
ISC Kea DHCP的控制代理服务,提供Debian和Alpine两种版本。
10K+ pulls
上次更新:1 个月前
jonasal/kea-hooks logo
jonasal/kea-hooks
by jonasal
包含Kea DHCP服务开源钩子的辅助镜像
10K+ pulls
上次更新:1 个月前
jonasal/kea-dhcp6 logo
jonasal/kea-dhcp6
by jonasal
ISC Kea DHCP服务的IPv6实例,提供Debian和Alpine两种版本。
10K+ pulls
上次更新:1 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
jonasal/nginx-certbot
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429