SuperAPI AI 工具集

certbot

安全与审计

查看项目

更新于 10-15 21:49

技能介绍

用途:Certbot 是免费开源工具,通过 ACME 协议自动为网站申请 Let's Encrypt 证书,实现 HTTPS,并支持自动续期,适用于手动管理的 Web 服务器。

主要能力:自动签发受信任的 Let's Encrypt 证书;通过 cron 或 systemd 定时器实现无停机自动续期;经 DNS-01 挑战生成通配符证书(*.example.com);自动配置 Nginx 与 Apache 的 HTTPS 指令、加密套件和重定向。验证方式分两类:HTTP-01 在 80 端口 /.well-known/acme-challenge/ 提供挑战文件,简单但不支持通配符;DNS-01 创建 _acme-challenge.example.com 的 TXT 记录,为通配符及内部/私有服务器所必需。

用法:安装命令为 sudo snap install --classic certbot,随后 sudo ln -s /snap/bin/certbot /usr/bin/certbot。自动配置 Nginx 使用 sudo certbot --nginx。独立模式示例:certbot certonly --standalone -d api.example.com --non-interactive --agree-tos -m admin@example.com。DNS-01 通配符示例:certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/cloudflare.ini -d "example.com" -d "*.example.com"。

最佳实践:先用 --dry-run 针对 staging 环境测试,避免触发生产速率限制;用 --deploy-hook "systemctl reload nginx" 在续期后重载服务;保持 80 端口开放以完成 HTTP-01 挑战;用 Prometheus/Datadog 监控到期时间,剩余不足 20 天告警;确认 systemctl list-timers | grep certbot 每日运行两次;DNS API 令牌仅限修改 _acme-challenge TXT 记录;删除证书用 certbot delete --cert-name <domain>,不要手动删除 /etc/letsencrypt/ 文件。

限制与排错:HTTP-01 无法签发通配符证书;超时通常因 80 端口被阻断,需在防火墙或安全组放行;命中速率限制需等待约 1 小时或使用 --test-cert。其余细节暂未提供。