Skip to content

证书申请器 | Docker系列

前言

本文介绍使用CertbotCloudflare在Ubuntu服务器上搭建证书申请器,请先根据本章前言完成环境的搭建。

Certbot地址:

Cloudflare地址:

拉取镜像

shell
docker pull certbot/dns-cloudflare:latest

开放端口

本文无需开放端口

配置API密钥

  1. 准备一个Cloudflare账户,注册地址:https://dash.cloudflare.com/sign-up
  2. 打开网址:https://dash.cloudflare.com/
  3. 添加域名至Cloudflare
  4. 返回用户首页,在左侧边栏找到“管理帐户”,展开后点击“帐户API令牌”
  5. 创建一个帐户API令牌,权限设置为区域:DNS:读取区域:DNS:编辑
  6. 保存创建好的API密钥

配置文件

shell
# 前往srv目录
cd /srv

# 创建工作目录
mkdir certbot

# 进入工作目录
cd certbot

# 创建docker配置文件
touch docker-compose.yml

# 编辑docker配置文件
nano docker-compose.yml

# 创建Cloudflare API密钥文件
touch apikey.ini

# 编辑Cloudflare API密钥文件
nano apikey.ini

docker-compose.yml

yml
services:
  certbot:
    image: certbot/dns-cloudflare:latest
    container_name: certbot
    restart: no
    volumes:
    - ./conf:/etc/letsencrypt
    - ./data:/var/lib/letsencrypt
    - ./log:/var/log/letsencrypt
    - ./apikey.ini:/secrets/apikey.ini:ro
    command:
    - certonly
    - --dns-cloudflare
    - --dns-cloudflare-credentials
    - /secrets/apikey.ini
    - --dns-cloudflare-propagation-seconds
    - '60'
    - --force-renewal
    - --non-interactive
    - --agree-tos
    - --email
    - example@example.com # 此处填写邮箱
    - -d
    - example.com # 此处填写域名1
    - -d
    - www.example.com # 此处填写域名2

apikey.ini

ini
# 此处替换为您的Cloudflare API密钥
dns_cloudflare_api_token = example

开始运行

shell
# 前往工作目录
cd /srv/certbot

# 开始运行
docker compose up

程序运行完毕后,证书及私钥将创建于/srv/certbot/conf/archive/srv/certbot/conf/live,使用前请阅读Certbot生成的README文件

维护服务

shell
# 停止服务
cd /srv/certbot
docker compose down

# 更新服务
cd /srv/certbot
docker compose down
docker compose pull
docker compose up

# 压缩数据文件夹
cd /srv/certbot
tar -czf conf.tar.gz conf/
tar -czf data.tar.gz data/

# 解压缩数据文件夹
cd /srv/certbot
tar -xzf conf.tar.gz conf/
tar -xzf data.tar.gz data/