Jak nastavit Let’s Encrypt SSL pro Apache2 na Ubuntu 18.04 a 16.04 LTS

Let’s Encrypt je certifikační autorita (CA) poskytující SSL/TLS certifikáty zdarma. Certifikáty je možno použít jak v testovacím tak v produkčním prostředí pro komeční využití. Platí následující omezeni: Certifikáty jsou vystavovány na tři měsíce a po této době je nutná obnova (ručně nebo automaticky). Požadavky na záskání certifikátu mohou přicházet pouze ze serveru, na který je směrované příslušné doménové jméno. Let’s Encrypt toto kontroluje pomocí DNS. Doporučujeme prostudovat licenční podmínky Let's Encrypt. 

Krok 1 – Příprava

Potřebujete:

  • Ubuntu s přístupem shell s oprávněním sudo .
  • Zaregistrovanou doménu nasměrovanou na IP adresu Vašeho serveru. Pro tento příklad použijeme doménu example.com a alias www.example.com.
  • Běžící web s VirtualHost nastaveným na doménu (example.com and www.example.com) na portu 80.

Krok 2 – Instalace Let’s Encrypt klienta

Stáhněte certbot-auto Let’s Encrypt client a uložte ho do /usr/sbin:

sudo wget https://dl.eff.org/certbot-auto -O /usr/sbin/certbot-auto
sudo chmod a+x /usr/sbin/certbot-auto
 

Krok 3 – Získání SSL Certifikátu

Let’s Encrypt automaticky provádí validaci domény a několika způsoby ověřuje (může) vlastnictví domény. SSL certifikát je vystaven jakmile certifikační autorita (CA) ověří vlastnictví domény pomocí DNS.

Nejprve nutno zastavit web server:

/etc/init.d/apache2 stop
/etc/init.d/nginx stop

Vygenerovat certifikát

sudo certbot-auto certonly --standalone -d example.com  -d www.example.com

Spustit web server:

/etc/init.d/apache2 start
/etc/init.d/nginx start

Přikaz vás nejprve vyzve k zadání emailové adresy, která se používá pro zaslání alertů souvisejících s obnovou a exprací certifikátu. Po zodpovězení dalších několika otázek proběhne vystavení SSL certifikátu. Vytvoří se nová konfigurace VirtualHost. Pokud není doména nasměrovaná na Váš server, certifikát se nevygeneruje.

 

Krok 4 – Zkontrolujte si nový SSL Certifikát

Pokud je vše v pořádku, nový certifkát najdete zde:.

cd /etc/letsencrypt/live/example.com
ls 

Soubory:

  cert.pem
  chain.pem
  fullchain.pem
  privkey.pem

 

Krok 5 – Konfigurace SSL VirtualHost

Upravte konfigurační soubory Apache nebo Nginx a přidejte do nich následující řádky.

Apache:

SSLEngine on;
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem;
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem;
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem;

Nginx:

ssl on;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

 

Krok 6 – Přidat permanent redirect na HTTPS

Permanent redirect zajistí přesměrování na HTTPS z ne HTTPS URL. Více informaci na cwiki.apache.org

Apache:

<VirtualHost *:80> 
    ServerName example.com 
    ServerAlias www.example.com 
    Redirect permanent / https://example.com/ 
</VirtualHost>
Restart web serveru:
/etc/init.d/apache2 restart

Nginx:

server {
   listen 80;
   server_name example.com;
   return 301 https://$host$request_uri;
}
Restart web serveru:
/etc/init.d/ngins restart

 

Krok 7 – Nastavení SSL Auto Renew

Auto Renew povolíte v /etc/crontab následujícím řádkem.

3 33 * * * sudo /usr/sbin/certbot-auto -q renew
3 33 * * * . /etc/init.d/apache2 stop && sudo /usr/sbin/certbot-auto -q renew && /etc/init.d/apache2 start
3 33 * * * . /etc/init.d/nginx stop && sudo /usr/sbin/certbot-auto -q renew && /etc/init.d/nginx start

 

Restart cron deamona:

/etc/init.d/cron restart

 

Zdroje informací: