certbot 自动获取 https 证书

449 字
2 分钟
certbot 自动获取 https 证书

原本自建的 vaultwardeng 服务是通过 http 访问的,但是 iOS 上的 Bitwardeng 应用如果要访问家里的 vaultwardeng 应用,添加自签的 https 证书又比较麻烦,想到之前在阿里云上买的 10 年域名,为什么不直接弄一个二级域名通过 Let’s encrypt 来弄个真正的 https 证书呢?直接开搞

cloudflare token准备#

certbot 可以通过 cloudflare 的 api 来做域名验证(验证某个域名的归属),因此要先准备 cloudflare 的 api token。从安全角度考虑,该 api token 只需要编辑 DNS 权限。

  1. 先添加要解析的域名

Untitled 38
Untitled 38

  1. API Tokens → Create Token

Untitled 39
Untitled 39

  1. 选择 Edit zone DNS 模板

Untitled 40
Untitled 40

  1. 精确到某个域名范围(推荐)

Untitled 41
Untitled 41

  1. 一路提交,将拿到的 token 存到 cloudflare.ini 文件中
# Cloudflare API token used by Certbot
dns_cloudflare_api_token = <your token>

Certbot 获取证书#

docker-compose.yml

services:
certbot:
image: certbot/dns-cloudflare
container_name: certbot
environment:
- TZ=Asia/Shanghai
volumes:
# /root/docker-compose/certbot/etc/letsencrypt/cloudflare.ini 中有上一步骤中获取到的 token
- /root/docker-compose/certbot/etc/letsencrypt:/etc/letsencrypt
command: >-
certonly --dns-cloudflare
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini
--dns-cloudflare-propagation-seconds 15
# 改成你的 cloudflare 账号
--email <your_cloudflare_email>
--agree-tos --no-eff-email
--force-renewal
# 改成你要获取证书的域名
-d <your_domain>
restart: unless-stopped

启动 certbot

Terminal window
docker compose --compatibility -f /root/docker-compose/docker-compose.yml up -d certbot

签发成功后可以看到拿到的证书

fullchain2.pem 和 privkey2.pem 可以配置到 nginx 中做 SSL 证书使用

Terminal window
tree /root/docker-compose/certbot/etc/letsencrypt
/home/xxx/docker-compose/certbot/etc/letsencrypt
├── accounts
│   └── acme-v02.api.letsencrypt.org
│   └── directory
│   └── 98c1515d3c6f7980e5c4807982403d9b
│   ├── meta.json
│   ├── private_key.json
│   └── regr.json
├── archive
│   └── <your_domain>
│   ├── cert1.pem
│   ├── cert2.pem
│   ├── chain1.pem
│   ├── chain2.pem
│   ├── fullchain1.pem
│   ├── fullchain2.pem
│   ├── privkey1.pem
│   └── privkey2.pem
├── cloudflare.ini
├── csr
│   ├── 0000_csr-certbot.pem
│   └── 0001_csr-certbot.pem
├── keys
│   ├── 0000_key-certbot.pem
│   └── 0001_key-certbot.pem
├── live
│   ├── README
│   └── <your_domain>
│   ├── cert.pem -> ../../archive/<your_domain>/cert2.pem
│   ├── chain.pem -> ../../archive/<your_domain>/chain2.pem
│   ├── fullchain.pem -> ../../archive/<your_domain>/fullchain2.pem
│   ├── privkey.pem -> ../../archive/<your_domain>/privkey2.pem
│   └── README
├── renewal
│   └── <your_domain>.conf
└── renewal-hooks
├── deploy
├── post
└── pre

📎 参考文章#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

certbot 自动获取 https 证书
https://blog.sephy.top/posts/certbot-自动获取-https-证书/
作者
虾米
发布于
2024-03-21
许可协议
CC BY-NC-SA 4.0
随机文章随机推荐
Profile Image of the Author
虾米
coder
分类
标签
站点统计
文章
61
分类
4
标签
52
总字数
64,663
运行时长
0
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.13.9
文章许可
CC BY-NC-SA 4.0