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í:
- Secure Apache with Let’s Encrypt SSL
- Secure Nginx with Let’s Encrypt SSL
- https://tecadmin.net/install-lets-encrypt-create-ssl-ubuntu/
JČ