HTTPS za stovku? Let’s Encrypt skriptem a bez pláče
Platíš pořád SSL certifikát „na jistotu“ a každý rok ti přijde faktura 799 Kč? Přestaň krmit zbytečná CA kila a přejdi na Let’s Encrypt. V tomhle článku to zvládneš za půl hodiny pro Linux i Windows, včetně wildcard domén, cron/Scheduled Task automatizace a hlídacích háčků, aby se ti ostráčkovaný Chrome už nikdy nerozsvítil červeně.
1 · Proč přejít na Let’s Encrypt
- Zero Kč licence – DV certifikát zdarma, obnova každých 90 dní.
- Automatizace – žádné ruční klikání v CSR wizardu.
- Rychlejší SEO – Google preferuje HTTPS; HSTS pomůže Core Web Vitals.
- Důvěra – certifikát je uznávaný v 99,9 % prohlížečů.
- DevOps‑friendly – CI/CD job vygeneruje cert při deployi.
2 · Jak funguje ACME: tokeny, challenge, obnova
Let’s Encrypt používá protokol ACME v2:
- Klient (Certbot, win‑acme) vygeneruje CSR + klíč.
- CA vrátí challenge (HTTP‑01 nebo DNS‑01).
- Client publikuje token na webu nebo TXT záznam v DNS.
- CA ověří, vystaví certifikát (PEM/PFX).
- Klient nasadí a naplánuje obnovu < 60 dní.
Bez ručního mailu, bez PDF formulářů, bez Kafky.
3 · Linux: Certbot + Nginx/Apache (10 minut)
3.1 Instalace
# Debian 12
apt update && apt install certbot python3‑certbot‑nginx -y
3.2 Jednorázové vydání
certbot --nginx -d example.cz -d www.example.cz --redirect --hsts --staple-ocsp
--redirectzapne 301 HTTP→HTTPS.--hstspřidá hlavičkumax-age=31536000.--staple-ocspaktivuje cache OCSP, zrychlí hand‑shake.
3.3 Obnova crontab
echo "0 3 * * * root certbot renew --quiet --post-hook 'systemctl reload nginx'" \
> /etc/cron.d/certbot
Každou noc ve 3:00; pokud expira < 30 dní, stáhne nový cert, reloadne Nginx.
4 · Windows Server: win‑acme + IIS (15 minut)
4.1 Stažení a instalace
Invoke-WebRequest `
https://github.com/win-acme/win-acme/releases/latest/download/win-acme.v2.2.4.1605.x64.pluggable.zip `
-OutFile wacs.zip
Expand-Archive wacs.zip -DestinationPath C:\Tools\wacs
cd C:\Tools\wacs
4.2 Tichý režim – single site
& ".\wacs.exe" --target iis --host "example.cz" ^
--store centralssl --centralsslstore "C:\CentralCerts" ^
--installation iis --validation http-01 ^
--emailaddress "admin@example.cz" --accepttos ^
--renewx "days:30"
4.3 Scheduled Task
schtasks /Create /SC DAILY /TN "Renew LE" /TR ^
'"C:\Tools\wacs\wacs.exe" --renew --baseuri "https://acme-v02.api.letsencrypt.org/"' /ST 02:15
Task běží denně v 02:15, cert uloží jako PFX v C:\CentralCerts a připne k IIS Site. Hotovo.
5 · Wildcard & multi‑SAN certifikáty
5.1 DNS‑01 challenge (BIND, Cloudflare, …)
certbot -a dns-cloudflare --dns-cloudflare-credentials /root/cf.ini \
-d "*.example.cz" -d example.cz --server https://acme-v02.api.letsencrypt.org/directory
Token se zapíše do TXT záznamu, platí 90 dní pro všechny sub‑domény.
5.2 SAN bundle
Let’s Encrypt dovolí až 100 FQDN v jednom certu. Na serveru tak řešíš jediný PFX.
6 · Automatická obnova: cron vs. Scheduled Task
| Parametr | Linux cron | Windows Task |
|---|---|---|
| Frekvence | */12 h | 1× denně |
| Retry logic | certbot interní | wacs –renew kuwo |
| Post‑hook | reload nginx | iisreset /noforce |
| Logování | /var/log/letsencrypt | Event Log → Applications |
Doporučení: nastavit health‑check script, který 1× denně testne HTTPS přes curl -sSI a pošle alert, pokud expiry < 15 dní.
7 · Bezpečnost: HSTS, OCSP Stapling, TLS 1.3
- HSTS preload – registruj doménu na hstspreload.org.
- OCSP Stapling – v Nginx
ssl_stapling on;; v IIS se zapíná Enable OCSP. - TLS 1.3 – Apache 2.4.51+ a Windows Server 2022 už default.
- Cypher suite – preferuj
ECDHE‑ECDSA‑AES128‑GCM‑SHA256. - Permissions – certifikáty (PFX) jen
NETWORK SERVICE+ Administrators.
8 · SEO boost: Core Web Vitals & HTTPS
Google od 2021 penalizuje mixed‑content. Po migraci:
- Skenuj
http://linky (grep -R/ Search Replace DB). - Zapni 301 redirect na levelu serveru, ne na PHP.
- Testni securityheaders.com – A rating cíl.
- PageSpeed Insights > 90 bodů díky TLS 1.3 + OCSP Stapling.
9 · Troubleshooting: 10 nejčastějších failů
- Rate limit
too many certificates for exact set of domains - Počkej 1 h nebo přidej nový SAN.
- HTTP‑01 404 Not Found
- Webroot chybně; u Nginx musí být
location /.well-known/acme-challenge/→root. - Win‑acme Access Denied při centrál store
- SL certificate store musí mít práva IIS AppPool identity.
- Wildcard fail –
NXDOMAIN - TXT záznam publikuješ na
_acme-challenge.example.cz, ne na root. - Chrome stále hlásí „Not secure“
- Clear HSTS cache:
chrome://net-internals/#hsts.
10 · Case study: Webseidon.cz > 20 domén
Switch z placené RapidSSL WildCard:
| Metrika | Před | Po migraci | Rozdíl |
|---|---|---|---|
| Roční náklady | 3 980 Kč | 0 Kč | ‑100 % |
| Obnova práce | 45 min (ručně) | 0 min (auto) | ‑100 % |
| PageSpeed mobile | 85 | 92 | +7 bodů |
| Incidenty „cert expired“ | 1/rok | 0 | ‑100 % |
11 · Check‑list před Go‑Live
- Certifikát platný > 85 dní (
openssl x509 -enddate -noout -in fullchain.pem). SSL Labsskóre A min. (90 +).- HSTS + preload v response.
- Redirect HTTP→HTTPS 301 na serveru.
- Cron/Task log bez chyb posledních 7 dní.
- Backup privátního klíče do Password Manageru.
- Firewall: port 80 i 443 otevřen (HTTP‑01 potřebuje 80).
- DNS TTL 300 s pro rychlé změny.
12 · Závěr
Let’s Encrypt není hipster výstřelek, ale standard. Za stovku ne, za nulu – a přesto získáš šifrování, důvěru a SEO plus. Jeden příkaz na Linuxu, jeden řádek ve Scheduled Tasku na Windows a od‑teď máš hlavu i prohlížeč zelenou. 🤘
Klíčová slova
lets encrypt, https zdarma, win-acme, certbot, ssl certifikát, iis https, automatická obnova, acme script, tls security, linux nginx, windows server ssl, open source




