构建certbot-dns-cloudflare

1,配置Dockerfile文件
root登录ubuntu的终端
某个目录新建文件夹

# 创建文件夹
mkdir certbot-dns-cloudflare
# 进入文件夹内
cd certbot-dns-cloudflare

创建Dockerfile文件

nano Dockerfile

拷贝下边内容进Dockerfile

FROM certbot/certbot:v2.11.0

RUN pip install --no-cache-dir certbot-dns-cloudflare

ENTRYPOINT ["certbot"]

说明:
v2.11.0:稳定,插件兼容性好
2,构建镜像

docker build -t camel52zhang/certbot-dns-cloudflare:latest .

验证版本(可以不验证)

docker run --rm camel52zhang/certbot-dns-cloudflare:latest certbot --version

应该看到类似:

certbot 2.11.0

验证插件是否成功加载

docker run --rm camel52zhang/certbot-dns-cloudflare:latest plugins

应该能看到类似:

* dns-cloudflare
Description: Obtain certificates using a DNS TXT record (Cloudflare DNS).
Interfaces: Authenticator, Plugin

看到这个就 100% 成功 了。
3,推送到 Docker Hub
先加标签

docker tag camel52zhang/certbot-dns-cloudflare:latest camel52zhang/certbot-dns-cloudflare:v2.11.0
GitHub Actions 自动构建(进阶)
git push

Docker Hub 自动更新镜像。

登录 Docker Hub

docker login -u camel52zhang
# token
dckr_pat_BN6iovtl123456789_123456789

推送

docker push camel52zhang/certbot-dns-cloudflare:latest
docker push camel52zhang/certbot-dns-cloudflare:v2.11.0
latest(随你更新)
v2.11.0(稳定可回滚)

完成后,你在 Docker Hub 就能看到:

https://hub.docker.com/r/camel52zhang/certbot-dns-cloudflare

应用certbot-dns-cloudflare

在项目目录创建文件夹

# 创建文件夹certbot和certbot/letsencrypt
mkdir certbot
cd certbot
mkdir letsencrypt
# 创建文件credentials.ini
nano credentials.ini
# 粘贴下边内容进文件内(注意添你的CF APT token):
dns_cloudflare_api_token = CF_API_TOKEN_XXXXXXXXXXXXXXXX

文件credentials.ini授权

chmod 600 credentials.ini

回到项目跟目录(certbot同级目录)创建docker-compose.yml

services:
  certbot:
    image: camel52zhang/certbot-dns-cloudflare:latest
    container_name: camelznav-certbot
    volumes:
      - ./certbot/letsencrypt:/etc/letsencrypt
      - ./certbot/credentials.ini:/credentials.ini:ro
    command: >
      certonly
      --dns-cloudflare
      --dns-cloudflare-credentials /credentials.ini
      --dns-cloudflare-propagation-seconds 30
      -d nav.xiagao.site
      --email eric.zhng@gmail.com
      --agree-tos
      --non-interactive
      --preferred-challenges dns-01

Cloudflare DNS 生效很快,设置的30 秒通常足够。

运行 certbot 申请证书

docker compose run --rm certbot

标签: none

添加新评论

🔝