Let's encrypt s automatickým prodloužením
Jelikož jsou čím dál větší restrikce na používání webů bez https, čili bez certifikátu, tak si takový certifikát pro web vystavíme a navíc si nastavíme i automatické prodlužování. Nastavovat tohle budeme na reverse nginx proxy, ale postup bude dost podobný i v případě přímé konfigurace na jednotlivých webech.
Instalace a generování certifikátu
- Provedeme update apt
apt-get update
- Nainstalujeme certbota, který se nám bude starat o certifikáty
apt-get install certbot -y
- Nainstalujeme balíček co umožní certbotovi další funkce
apt-get install python-certbot-nginx -y
- Vytvoříme si certifikát pro chtěnou stránku (předpoklad je takový, že nginx proxy již obsahuje nějaké weby)
certbot --nginx -d domena.cz -d www.domena.cz
- zadáme email
- potvrdíme licenční ujednání -
Y
- zamítneme sdílení naší emailové adresy -
N
- zvolíme, jestli chceme http přesměrovat na https (
2
) nebo ne (1
)
- Po zadání by se mělo zobrazit, že certifikát byl úspěšně vytvořen a kam byl uložen
- Pokud si otevřeme konfiguraci daného webu v nginx, tak uvidíme, že se nám do konfigurace automaticky doplnili potřebné konfigurace (pokud jsme zadali volbu
2
) pro HTTPS s umístěním certifikátů a přesměrováním http na https
Automatické prodloužení certifikátu
Certifikát od let's encrypt má platnost pouze 90 dnů, to znamená, že bychom museli co 90 dnů na server a ručně generovat nový certifikát. Lze si to ale i ulehčit a to tímto jednoduchým způsobem přes cron. Řádek který se bude zadávat v kroku níže znamená, že se každý den o půlnoci spustí příkaz na renew certifikátu, certbot poté certifikát obnoví, pokud jeho platnost bude menší než 30 dnů.
Pokud cron v linuxu nemáme, tak jej doinstalujeme apt-get install cron -y
- Otevřeme si editaci crontabu
crontab -e
- Začneme editovat pomocí tlačítka
i
neboinsert
- Vepíšeme následující řádku
0 12 * * * /usr/bin/certbot renew --quiet
- Ukončíme editaci pomocí
ESC
tlačítka - Uložíme změny v crontabu pomocí vepsání
:wq!
- Pokud chceme nastavení ověřit, tak zadáme
crontab -l