安装certbot和插件
apt update
apt upgrade
apt install certbot python3-certbot-dns-cloudflare
配置Cloudflare API密钥
- 登录到 Cloudflare 控制台。
- 进入 API Tokens 页面:
- 点击右上角的用户图标 -> My Profile -> API Tokens。
- 点击 Create Token 创建一个新密钥。
- 创建一个 自定义 Token,为它设置适当的权限:
- 选择 Zone.Zone、Zone.DNS 权限,这样 Certbot 可以管理 DNS 记录。
- 设置为 “Edit” 权限。
- 生成 API Token 后,记下 Token,这将在配置 Certbot 时用到。
编辑配置文件
vim /etc/letsencrypt/cloudflare.ini
# Cloudflare API token used by Certbot
dns_cloudflare_api_token = 0123456789abcdef0123456789abcdef01234567
更改权限为只读
chmod 600 /etc/letsencrypt/cloudflare.ini
申请证书
sudo certbot certonly \
--dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
--key-type ecdsa \
-d "shufue.top,*.shufue.top"
配置自动续签
Certbot会默认安装证书时创建一个自动续签任务,但我们可以手动确认或者设置续签任务。
测试自动续签
certbot renew --dry-run
设置定时cron任务检查过期续签
crontab -e
0 0 * * * certbot renew --quiet --deploy-hook "/usr/bin/systemctl reload nginx"
这个任务会每天运行一次,检查证书是否需要续签。如果需要,它会自动续签,并在完成后重载 Nginx