Besplatan Let's Encrypt sertifikat
Kako da izdaš i automatski obnavljaš HTTPS sertifikat na VPS-u pomoću certbot-a, uključujući slučaj kada je port 80 već zauzet.
Ažurirano 23. avgust 2026.
Potreban ti je sertifikat da browser ne bi prikazivao „Not secure” i da obrasci i plaćanja uopšte rade. Let's Encrypt izdaje jedan besplatno na 90 dana uz automatsku obnovu.
Priprema
Proveri tri stvari, inače će izdavanje pasti:
dig +short example.ru # should return your machine's address
ss -tulpn | grep -E ':80|:443'
- A zapis domena pokazuje na adresu na kartici „Overview” u panelu na
/hosting/vds/m/<id>; - port 80 je dostupan spolja — Let's Encrypt ga koristi da potvrdi vlasništvo nad domenom;
- veb server radi: Nginx ili Apache.
Ako koristiš Caddy, ne moraš ništa da radiš — sam izdaje sertifikate.
Izdavanje
apt install -y certbot python3-certbot-nginx # Debian, Ubuntu
dnf install -y certbot python3-certbot-nginx # AlmaLinux, CentOS Stream
certbot --nginx -d example.ru -d www.example.ru
Za Apache je isti put sa python3-certbot-apache i zastavicom --apache. Certbot sam dodaje blok sa sertifikatom i preusmerenje sa HTTP na HTTPS u konfiguraciju.
Proveri rezultat:
certbot certificates
curl -I https://example.ru
Automatska obnova
Paket instalira sistemski tajmer, koji se stara i o obnovi. Uveri se da je tajmer aktivan i pokreni probnu obnovu:
systemctl list-timers | grep certbot
certbot renew --dry-run
Probni prolaz je obavezan. On hvata situaciju u kojoj će obnova pući za dva meseca — na primer, preimenovao si konfiguraciju sajta i certbot više ne zna gde da stavi verifikacioni fajl.
Kada je port 80 zauzet
Ako na portu 80 radi aplikacija i ne možeš tu da staviš veb server, koristi poseban režim:
certbot certonly --standalone --preferred-challenges http -d example.ru
Certbot će za vreme provere podići sopstveni privremeni server. Za to ćeš morati da zaustaviš aplikaciju: --pre-hook i --post-hook to mogu automatski.
Posle izdavanja, sertifikati su u /etc/letsencrypt/live/example.ru/: fullchain.pem i privkey.pem.
Česte greške
| Simptom | Uzrok |
|---|---|
Timeout during connect | Port 80 blokira firewall ili domen pokazuje na drugu mašinu |
too many certificates already issued | Udario si u nedeljni limit za domen — sačekaj ili debuguj sa --staging |
| Sajt servira stari sertifikat posle izdavanja | Nisi reloadovao veb server: systemctl reload nginx |
| Sertifikat je istekao | Tajmer je onemogućen — proveri systemctl enable --now certbot.timer |
Direktorijum
/etc/letsencryptje deo tvojih podataka. Nema automatskih bekapa mašine, pa ga uključi u svoj bekapa zajedno sa konfiguracijama veb servera.