Skip to Content
🔥 Nová dokumentace BlazeHost.cz je online — prohlédnout

SSL

SSL/TLS certifikát šifruje spojení mezi prohlížečem a serverem. Dnes je povinností — bez něj prohlížeč web označí jako nezabezpečený.

Let’s Encrypt

Certifikáty zdarma, platnost 90 dní, obnovení automatické.

Krátká platnost není nevýhoda. Certbot obnovuje certifikát automaticky každých 60 dní.

Instalace certbotu

Nainstaluj certbot

sudo apt install certbot python3-certbot-nginx -y

Získej certifikát

sudo certbot --nginx -d mujweb.cz -d www.mujweb.cz

Ověř automatické obnovení

sudo certbot renew --dry-run

Certbot potřebuje port 80 otevřený pro ověření. Zavřený port 80 ve firewallu je nejčastější příčina selhání vydání certifikátu.

Konfigurace nginx

/etc/nginx/sites-available/mujweb.cz
server { listen 80; server_name mujweb.cz www.mujweb.cz; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name mujweb.cz www.mujweb.cz; ssl_certificate /etc/letsencrypt/live/mujweb.cz/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mujweb.cz/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; } }
sudo nginx -t sudo systemctl reload nginx

Automatické obnovení

Certbot si vytvoří systemd timer. Ověř:

systemctl list-timers | grep certbot

Po obnovení certifikátu je nutné znovu načíst webserver. Certbot to dělá automaticky přes hook. Pokud používáš vlastní aplikaci, přidej si hook sám:

sudo certbot renew --deploy-hook "systemctl reload nginx"

Časté chyby

ChybaPříčina
Timeout during connectZavřený port 80
DNS problem: NXDOMAINDoména nesměruje na server
Too many certificates already issuedLimit Let’s Encrypt (5 duplicitních certifikátů / týden pro stejnou sadu domén)
ERR_CERT_COMMON_NAME_INVALIDCertifikát pro jinou doménu

Při testování používej --dry-run. Ostré vydávání má týdenní limity a rychle je vyčerpáš.

Wildcard certifikát

Pro *.mujweb.cz je nutné DNS ověření:

sudo certbot certonly --manual --preferred-challenges dns \ -d "*.mujweb.cz" -d mujweb.cz

Tipy

  • Přesměruj HTTP na HTTPS, jinak certifikát polovina návštěvníků nevyužije.
  • Nezálohuj privátní klíč do gitu. Nikdy.

Poznámka

Cloudflare v proxy režimu nabízí certifikát zdarma bez certbotu — viz Cloudflare.

Související články