Certbot
Certbot Let's Encrypt certificates. Use for SSL/TLS.From its SKILL.md
npx -y skills add G1Joshi/Agent-Skills --skill certbotAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.2 KB, 520 tokens by cl100k_base, as published. Nobody here has run it
Certbot
Certbot is a free, open-source software tool for automatically using Let's Encrypt certificates on manually-administrated websites to enable HTTPS.
When to Use
- VPS Hosting: Running Nginx/Apache on a VM (EC2, DigitalOcean) and need SSL.
- Homelab: Securing local services exposed via DDNS.
- Wildcards: Issuing
*.example.comcertificates (requires DNS plugin).
Quick Start (Nginx on Ubuntu)
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# Auto-configure Nginx
sudo certbot --nginx
Core Concepts
ACME Protocol
Automatic Certificate Management Environment. The protocol Certbot uses to talk to the Let's Encrypt CA.
Challenges
To prove you own the domain:
- HTTP-01: Certbot puts a file in
.well-known/acme-challenge. (Requires port 80 open). - DNS-01: Certbot creates a TXT record. (Required for Wildcards).
Renewal
Let's Encrypt certs last 90 days. Certbot installs a timer (systemd) to check twice daily and renew any cert expiring in <30 days.
Best Practices (2025)
Do:
- Use DNS plugins: If using Cloudflare/Route53, use
certbot-dns-cloudflare. It's robust and supports wildcards. - Test with Staging: Use
--dry-runor--test-certto differentiate testing from production (Rate limits apply). - Reload Web Server: Ensure the renewal hook (
--deploy-hook) reloads Nginx/Apache so it picks up the new cert.
Don't:
- Don't Run as Root (custom): The default runs as root, but for custom hooks, drop privileges if possible.
- Don't Hardcode IP: ACME verification usually requires a Domain Name.
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
Timeout | Port 80 blocked. | Open Firewall/Security Group for Port 80 (HTTP-01 challenge). |
Rate Limit | Too many failures. | Wait 1 hour or use --test-cert. |
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.