Files
2026-01-23 11:15:00 +08:00
..
2026-01-23 11:15:00 +08:00
2026-01-23 11:15:00 +08:00

Nginx + Certbot

基于官方 nginx:latest,内置 certbot,用于在容器内执行证书申请与续期。

基础镜像

  • nginx:latest

包含组件

组件 说明
nginx 官方镜像默认版本
certbot Let's Encrypt 客户端

构建

# 使用构建脚本
./rebuild.sh nginx

# 或直接使用 docker build
docker build -t timi/nginx-certbot:latest ./nginx

使用

运行 Nginx

docker run -d --name nginx \
  -p 80:80 \
  -p 443:443 \
  -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf:ro \
  -v $(pwd)/conf.d:/etc/nginx/conf.d:ro \
  -v $(pwd)/certs:/etc/letsencrypt \
  timi/nginx-certbot:latest

申请/续期证书

docker exec -it nginx certbot certonly --nginx -d example.com

申请/续期泛解析证书

需要添加 TEXT 解析记录支持

docker exec -it nginx bash
certbot certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d *.example.com

查看证书有效期

docker exec -it nginx bash
certbot certificates | awk '/Certificate Name:/ {name=$3} /Expiry Date:/ {printf "%s: %s %s\n", name, $3, $4}'

证书会写入 /etc/letsencrypt,请持久化该目录。