之前写的图片压缩工具,在我原来的2核2G的小服务器上运行太吃力了,并且这个HALO也很吃内存。我决定换个4H4G的服务器,之前的SSL证书正好也快到期了,正好重新用Lets Encrypt重新申请一个证书,简单记录下流程,

通配符域名申请

新服务器的系统是 ubuntu 22
老样子,新系统先更新工具

sudo apt update

安装 certbot

sudo apt install certbot

开放80端口

sudo ufw allow 80/tcp

我比较懒每次申请都是通配符 覆盖所有域名,好处就是二级域名不用一个一个申请了,坏处是用不了自动续期,

sudo certbot certonly --manual --preferred-challenges dns -d *.example.com

把example.com 换成你自己的域名就行了,在第一次申请前他会让你填写一个邮箱来提醒续期,填写邮箱之后两个Y,然后就是去你的DNS配置那里配置一个TXE类型的,按他提示的二级域名和内容填写,然后等几分钟按回车就行了。

半自动脚本

我这里使用的是CF托管的域名,正好有个插件

sudo apt install certbot python3-certbot-dns-cloudflare

安装好插件以后还需要去CF上获取一个API token,在CF的主页点击你右上角,选择配置文件,英文的话应该是profile字样里面可以创建API令牌
创建配置文件/etc/cloudflare.ini

# Cloudflare API token
dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN

设置为可读

sudo chmod 600 /etc/cloudflare.ini

申请证书(自动 DNS 验证)

sudo certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials /etc/cloudflare.ini \
  -d *.example.com \
  --preferred-challenges dns

非通配符自动续期 设置定时任务

crontab -e
0 0 1 * * /usr/bin/certbot renew --quiet

验证定时任务是否添加成功

crontab -l

测试自动续期(不实际更新)

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