Let’s Encrypt poskytuje bezplatné TLS certifikáty s automatickou obnovou a žádný důvod nemít HTTPS neexistuje. Certifikáty jsou platné 90 dní, což motivuje k automatizaci obnovy a snižuje dopad případné kompromitace klíče. Let’s Encrypt vydává přes 400 milionů certifikátů a je důvěryhodný ve všech moderních prohlížečích a operačních systémech.
Instalace a použití¶
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Certbot automaticky upraví Nginx konfiguraci — přidá SSL direktivy, přesměrování z HTTP na HTTPS a nastaví cesty k certifikátům. Pro Apache existuje ekvivalentní plugin python3-certbot-apache. Certbot podporuje i standalone mode bez webového serveru, který je užitečný pro servery s nestandardní konfigurací.
Wildcard certifikát¶
sudo certbot certonly --dns-cloudflare \
--dns-cloudflare-credentials /etc/letsencrypt/cloudflare.ini \
-d '*.example.com' -d example.com
Wildcard certifikáty pokrývají všechny subdomény jedním certifikátem. Vyžadují DNS-01 challenge — certbot ověřuje vlastnictví domény vytvořením TXT DNS záznamu. Pro automatizaci je potřeba DNS plugin (Cloudflare, Route53, DigitalOcean a další). DNS challenge je také jedinou možností pro servery, které nejsou dostupné z internetu.
Automatická obnova¶
sudo certbot renew --dry-run
# Crontab nebo systemd timer:
# 0 0 1 * * certbot renew --quiet --deploy-hook "systemctl reload nginx"
Certbot automaticky nastaví systemd timer pro obnovu. Deploy hook zajistí reload webového serveru po obnově certifikátu. Ověřte funkčnost příkazem --dry-run před ostrým nasazením. Certbot obnovuje certifikáty 30 dní před expirací, takže je dostatek času na řešení případných problémů.
Testování¶
Po nasazení ověřte konfiguraci na SSL Labs (ssllabs.com/ssltest/) — cíl je hodnocení A nebo A+. Zkontrolujte, že HTTP přesměrovává na HTTPS, HSTS header je nastaven a certifikát pokrývá všechny požadované domény.
Klíčový takeaway¶
Let’s Encrypt + certbot = bezplatné HTTPS za 5 minut. Nastavte automatickou obnovu a deploy hook, ověřte na SSL Labs. Pro Kubernetes prostředí použijte cert-manager místo certbotu.