构建certbot-dns-cloudflare并应用
构建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.0GitHub Actions 自动构建(进阶)
git pushDocker 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.0latest(随你更新)
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-01Cloudflare DNS 生效很快,设置的30 秒通常足够。
运行 certbot 申请证书
docker compose run --rm certbot