Instalace Let’s Encrypt

Vyhledávače Google i Seznam dlouhodobě avizují, že zabezpečený přenos upřednostňují a pravděpodobně se v budoucnu setkáme i s penalizací nezabezpečených stránek ve výsledcích vyhledávání. Proto by sousta uživatelů WordPressu ráda provozovala web na zabezpečeném připojení pomocí SSL certifikátu.

Problém ale je, že SSL certifikát něco stojí a to spoustu uživatelů odradí. Nyní s příchodem Let’s Encrypt to už tak úplně neplatí.

SSL certifikát zdarma

Let’s Encrypt je certifikační autorita, která zdarma poskytuje validní certifikáty umožňující zabezpečený přenos dat mezi klientem a serverem.

Před vznikem projektu Let’s Encrypt bylo možné využívat SSL buď pomocí self signed certifikátu, při kterém ovšem hlásil internetový prohlížeč chybu a bylo nutné potvrdit bezpečnostní výjimku, což nevzbuzovalo příliš důvěry, nebo bylo nutné zakoupit komerční certifikát, který se musel každý rok placeně prodlužovat.

Proto Let’s Encrypt přinesl všem zájemcům šifrovaný přenos pomocí SSL certifikátu zdarma. Aby toho mohli docílit, bylo nutné vydávaní certifikátů zautomatizovat pomocí scriptů nainstalovaných na váš server.

Další možnost získání SSL certifikátu zdarma je nasazení Cloudflare CDN.

Aktuální vývoj růstu Let’s Encrypt

Pro zajímavost přidávám graf růstu aktivních certifikátů od Let’s Encrypt.

Aktuální vývoj růstu Let’s Encrypt 2019

Instalace Let’s Encrypt

Tento návod vás provede instalací Let’s Encrypt na operačním systému Debian 9 (Stretch). Instalace bude pravděpodobně velmi podobná i pro ostatní verze Debianu a Ubuntu.

Stažení Let’s Encrypt

Následující příkazy stáhnou balík Git a do adresáře /usr/local/letsencrypt stáhnou nejnovější verzi Let’s Encryptu přímo z Github.com.

apt -y install git
cd /usr/local
git clone https://github.com/letsencrypt/letsencrypt

Vystavení SSL certifikátu pro web

Další příkaz provede automatické vystavení certifikátu pro požadovanou doménu. Nezapomeňte na konci příkazu změnit vaší doménu.

cd /usr/local/letsencrypt
./letsencrypt-auto --apache -d mojedomena.cz

Při prvním vystavení certifikátu se automaticky doinstalují další potřebné balíčky. Dále je nutné souhlasit s Terms of Service a zadat vaší emailovou adresu. Na tento email vám budou chodit případné problémy s certifikátem a upozornění na blížící se vypršení platnosti. Konfigurační proces za vás i vytvoří nový virtualhost poslouchající na HTTPS portu a zeptá se na automatické přesměrování nešifrovaného HTTP na HTTPS, což je doporučeno.

Až se vše úspěšně nainstaluje, objeví se vám gratulace a cesta k adresáři s certifikáty.

Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/vasedomena.cz/fullchain.pem

Kontrola certifikátů

Kontrola všech certifikátů se provede následujícím příkazem. Pokud je k dispozici nová verze Certbota, bude automaticky aktualizován.

cd /usr/local/letsencrypt
./certbot-auto certificates

Výsledek by měl vypadat nějak takto:

Found the following certs:
Certificate Name: ipdata.cz
Domains: ipdata.cz
Expiry Date: 2018-07-28 17:46:33+00:00 (VALID: 86 days)

Let's Encrypt

Automatické obnovování certifikátů

Aby bylo obnovování SSL certifikátů zcela automatické, je třeba zajistit pravidelné spouštění obnovovacího scriptu.

Otevřete Cron příkazem:

crontab -e

Na poslední řádek vložte tento příkaz, který zajistí spuštění automatické kontroly všech certifikátů a jejich případné obnovení každý den v půl páté ráno.

30 4 * * * cd /usr/local/letsencrypt && ./certbot-auto renew && /etc/init.d/apache2 restart

To je ve většině případů vše. Někdy je nutné ručně nainstalovat Certbota.

Ruční instalace Certbota

Před instalací Certbota bude možná nutné si do repozitáře přidat tento zdroj:

deb http://ftp.debian.org/debian stretch-backports main

Samotná instalace je jednoduchá:

apt install python-certbot-apache -t stretch-backports

Zkouška Certbota

Tímto příkazem nanečisto vyzkoušíte obnovení certifikátů:

certbot renew --dry-run 

Odstranění certifikátu

cd /usr/local/letsencrypt
certbot delete --cert-name mojedomena.cz