Bezplatný certifikát Let's Encrypt
Ako vydať a automaticky obnovovať HTTPS certifikát na VPS pomocou certbot, vrátane prípadu, keď je port 80 už obsadený.
Aktualizované 23. augusta 2026
Na to, aby prehliadač nezobrazoval „Not secure“ a formuláre a platby vôbec fungovali, potrebuješ certifikát. Let's Encrypt ti ho vydá zadarmo na 90 dní s automatickým obnovovaním.
Príprava
Skontroluj tri veci, inak vydanie zlyhá:
dig +short example.ru # should return your machine's address
ss -tulpn | grep -E ':80|:443'
- A záznam domény smeruje na adresu na karte „Overview“ v ovládacom paneli na
/hosting/vds/m/<id>; - port 80 je dostupný zvonku — Let's Encrypt ho používa na overenie vlastníctva domény;
- beží webový server: Nginx alebo Apache.
Ak používaš Caddy, nemusíš robiť nič — certifikáty si vydáva sám.
Vydanie
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
Pri Apache je postup rovnaký, len s python3-certbot-apache a prepínačom --apache. Certbot sám pridá do konfigurácie blok s certifikátom a presmerovanie z HTTP na HTTPS.
Skontroluj výsledok:
certbot certificates
curl -I https://example.ru
Automatické obnovovanie
Balík nainštaluje systémový časovač, ktorý sa stará aj o obnovovanie. Uisti sa, že je časovač aktívny, a spusti testovacie obnovenie:
systemctl list-timers | grep certbot
certbot renew --dry-run
Skúšobný beh je povinný. Odhalí situáciu, keď sa obnovovanie o dva mesiace pokazí — napríklad premenuješ konfiguráciu stránky a certbot už nevie, kam umiestniť overovací súbor.
Keď je port 80 obsadený
Ak na porte 80 beží aplikácia a nemôžeš tam dať webový server, použi samostatný režim:
certbot certonly --standalone --preferred-challenges http -d example.ru
Certbot si na čas overovania spustí vlastný dočasný server. Aby to fungovalo, budeš musieť aplikáciu zastaviť: --pre-hook a --post-hook to zvládnu automaticky.
Po vydaní nájdeš certifikáty v /etc/letsencrypt/live/example.ru/: fullchain.pem a privkey.pem.
Časté chyby
| Príznak | Príčina |
|---|---|
Timeout during connect | Port 80 blokuje firewall alebo doména smeruje na iný stroj |
too many certificates already issued | Dosiahol si týždenný limit pre doménu — počkaj alebo ladí s --staging |
| Stránka po vydaní servíruje starý certifikát | Nereštartoval si webový server: systemctl reload nginx |
| Certifikát vypršal | Časovač je vypnutý — skontroluj systemctl enable --now certbot.timer |
Adresár
/etc/letsencryptje súčasťou tvojich dát. Automatické zálohy stroja neexistujú, takže ho zahrň do zálohy spolu s konfiguráciami webového servera.