Certbot申请cloudflare证书并自动续签

安装certbot和插件

apt update 
apt upgrade 
apt install certbot python3-certbot-dns-cloudflare

配置Cloudflare API密钥

  1. 登录到 Cloudflare 控制台
  2. 进入 API Tokens 页面:
    • 点击右上角的用户图标 -> My Profile -> API Tokens。
    • 点击 Create Token 创建一个新密钥。
  3. 创建一个 自定义 Token,为它设置适当的权限:
    • 选择 Zone.Zone、Zone.DNS 权限,这样 Certbot 可以管理 DNS 记录。
    • 设置为 “Edit” 权限。
  4. 生成 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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注