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
ineboinsert - Vepíšeme následující řádku
0 12 * * * /usr/bin/certbot renew --quiet - Ukončíme editaci pomocí
ESCtlačítka - Uložíme změny v crontabu pomocí vepsání
:wq!
- Pokud chceme nastavení ověřit, tak zadáme
crontab -l