如何在All-Inkl DNS与Google Cloud Ubuntu VM上自动续期Let's Encrypt SSL证书?
Let's Encrypt + All-Inkl DNS 自动续期配置方案
前置条件
- Ubuntu系统已完成基础更新:
sudo apt update && sudo apt upgrade -y - 域名DNS完全托管在All-Inkl
- 已获取All-Inkl的API凭证(登录All-Inkl后台,在API设置中启用服务并记录用户名、API密码)
方案一:Certbot + All-Inkl DNS插件(推荐)
利用Certbot的DNS-01挑战插件,自动调用All-Inkl API完成验证记录的增删,实现证书自动申请与续期。
1. 安装依赖与插件
Ubuntu下通过Python虚拟环境安装第三方插件:
sudo apt install python3-pip python3-venv -y sudo python3 -m venv /opt/certbot/ sudo /opt/certbot/bin/pip install certbot certbot-dns-allinkl
2. 配置API凭证
创建安全的凭证文件:
sudo touch /etc/letsencrypt/allinkl.ini sudo chmod 600 /etc/letsencrypt/allinkl.ini sudo chown root:root /etc/letsencrypt/allinkl.ini
编辑文件写入你的All-Inkl信息:
dns_allinkl_username = 你的All-Inkl用户名 dns_allinkl_api_password = 你的All-Inkl API密码
3. 申请证书并启用自动续期
执行证书申请命令(替换成你的域名,多域名用-d追加):
sudo /opt/certbot/bin/certbot certonly \ --dns-allinkl \ --dns-allinkl-credentials /etc/letsencrypt/allinkl.ini \ -d your-domain.com \ -d www.your-domain.com
Certbot会自动处理_acme-challenge记录的添加与删除,无需手动操作。
4. 验证自动续期功能
运行模拟续期测试,确认配置有效:
sudo /opt/certbot/bin/certbot renew --dry-run
测试通过后,Certbot会自动添加systemd定时任务,每12小时检查一次,证书到期前30天自动续期。
方案二:acme.sh工具(轻量替代)
纯Shell实现的ACME客户端,无需Python环境,对All-Inkl DNS支持友好。
1. 安装acme.sh
curl https://get.acme.sh | sh source ~/.bashrc
2. 配置API凭证
设置环境变量(永久生效可写入~/.bashrc):
export ALLINKL_USERNAME="你的All-Inkl用户名" export ALLINKL_API_PASSWORD="你的All-Inkl API密码"
3. 申请证书
acme.sh --issue --dns dns_allinkl -d your-domain.com -d www.your-domain.com
工具会自动调用API完成DNS验证,验证后自动清理记录。
4. 确认自动续期
acme.sh默认添加定时任务,每60天自动续期。测试续期逻辑:
acme.sh --cron --test
如需自动部署证书到Nginx/Apache,可使用--install-cert命令配置部署规则。
注意事项
- 确保All-Inkl账户的API权限已开启,凭证信息准确,否则无法操作DNS记录
- 服务器需开放443端口出站,保障与Let's Encrypt服务器的通信
- 定期检查日志排查问题:Certbot日志路径
/var/log/letsencrypt/letsencrypt.log,acme.sh日志路径~/.acme.sh/acme.sh.log
内容的提问来源于stack exchange,提问作者coder
相关产品推荐
相关产品推荐

