环境:Centos 7

1)安装 certbot

yum install -y certbot certbot-dns-cloudflare

如果 yum 或 dnf 找不到 certbot-dns-cloudflare,可以安装 dnf install -y python3-certbot-dns-cloudflare

2)将 Cloudflare API 令牌写入到本地文件,替换 xxx 部分,注意令牌一定要有 DNS 的写权限,其余有读权限即可

echo 'dns_cloudflare_api_token =xxxxxxxxxxxxx' > /home/work/cloudflare.ini

sudo chmod 0400 /home/work/cloudflare.ini

3)生成SSL证书,注意替换 example.com, 注意 *.example.com 不包括 example.com

certbot certonly --dns-cloudflare --dns-cloudflare-credentials /home/work/cloudflare.ini -d example.com -d www.example.com --dns-cloudflare-propagation-seconds=60

4)查看证书

cd /etc/letsencrypt/live/

进入与域名同名的文件夹,找到 fullchain.pem 和 privkey.pem 两个文件,分别配置到 nginx 的 ssl_certificate 和 ssl_certificate_key 属性即可

5)自动续期

sudo /usr/bin/certbot renew --dry-run

写入到定时任务

echo '0 0 */5 * * root /usr/bin/certbot renew --deploy-hook  "sudo systemctl restart nginx"' >> /etc/crontab

进入目录可以查看自动续期的配置

cd /etc/letsencrypt/renewal

官网:https://certbot.eff.org/