切换深色或浅色模式
证书申请器 | Docker系列
前言
本文介绍使用Certbot和Cloudflare在Ubuntu服务器上搭建证书申请器,请先根据本章前言完成环境的搭建。
Certbot地址:
- https://hub.docker.com/r/certbot/dns-cloudflare
- https://certbot.eff.org/
- https://eff-certbot.readthedocs.io/en/stable/
Cloudflare地址:
拉取镜像
shell
docker pull certbot/dns-cloudflare:latest开放端口
本文无需开放端口
配置API密钥
- 准备一个Cloudflare账户,注册地址:https://dash.cloudflare.com/sign-up
- 打开网址:https://dash.cloudflare.com/
- 添加域名至Cloudflare
- 返回用户首页,在左侧边栏找到“管理帐户”,展开后点击“帐户API令牌”
- 创建一个帐户API令牌,权限设置为
区域:DNS:读取、区域:DNS:编辑 - 保存创建好的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.inidocker-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 # 此处填写域名2apikey.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/