Na domácím serveru používám velké množství subdomén, z nichž každá má svůj vlastní certifikát. Samozřejmě, pokud předem víte, které subdomény budete používat, můžete je vložit do jednoho společného certifikátu. Já však subdomény přidával postupně podle potřeb, takže každá má svůj vlastní certifikát.

Let’s Encrypt

Let’s Encrypt je veřejná certifikační autorita, která zdarma poskytuje certifikáty typu Domain Validation (DV) pro šifrování protokolu TLS. Tyto certifikáty umožňují bezpečnou komunikaci mezi klientem a serverem, například pomocí protokolu HTTPS.

Instalace balíčků

Pro instalaci potřebných nástrojů na Debianu nebo Ubuntu použijte:

sudo apt -y install openssl python3-certbot-apache certbot

Aktualizace certbot

Certbot by měl být pravidelně aktualizován, aby fungoval správně s nejnovějšími změnami na straně Let’s Encrypt. Pokud jste certbot instalovali přes balíčkovací systém, aktualizujte jej tímto příkazem:

sudo apt update && sudo apt upgrade certbot

Pokud je certbot instalován přes Python balíčky, aktualizujte ho takto:

sudo /opt/certbot/bin/pip install --upgrade certbot

Generování certifikátu

Certifikát pro váš server lze vygenerovat několika způsoby v závislosti na použitém webovém serveru.

Apache

certbot --apache

Nginx

certbot --nginx

Samostatný certifikát (standalone)

Používá se, pokud server nevyužívá Apache ani Nginx, například pro aplikace běžící na jiném serveru:

certbot --standalone

Certifikát pouze pro vybranou doménu

V případě, že chceme generovat certifikát pouze pro vybranou doménu

certbot --apache -d subdomain.example.com

Certifikáty jsou poté uloženy ve složce

/etc/letsencrypt/live/example.com/

Informace se ukládají do Log souboru

sudo tail /var/log/syslog

Testování generování certifikátu

Pokud máte problémy s generováním certifikátu a chcete otestovat proces bez skutečné žádosti, použijte argument --dry-run. Tento příkaz je ideální pro ladění konfigurace:

certbot --apache --dry-run

Informace o generování certifikátu

Detailní informace o průběhu certifikace najdete v log souboru:

sudo tail /var/log/syslog

Omezení Let’s Encrypt

Pokud se pokusíte generovat certifikát neúspěšně více než 5krát během jedné hodiny, server Let’s Encrypt dočasně zablokuje další žádosti. Argument --dry-run je proto užitečný při testování.

Obnovení certifikátu

Let’s Encrypt certifikáty jsou platné pouze 90 dní. Automatické obnovení lze nastavit pomocí příkazu s argumentem renew:

certbot renew

Pro konkrétní doménu a server použijte například:

certbot --apache --renew

Automatické obnovení

Je vhodné pravidelně kontrolovat automatické obnovování certifikátů, například pomocí cron úlohy.

0 3 * * * certbot renew --quiet

Tento příkaz spustí automatickou obnovu certifikátů každý den ve 3 hodiny ráno, bez výstupu do konzole.

+