Let’s Encrypt – Certifikaty zadarmo

Let’s Encrypt je jednou z mála Certifikačných Autorit (CA), ktorá vydáva certifikáty zdarma. Veľmi jednoduchým spôsobom popíšem, prečo je dobre používat certifikáty od Let’s Encrypt.

Možno ste si všimli, ked vo webovom prehliadači zadáte do url názov webu, tak pred názvom webu sa vám automaticky doplní protokol a to bud http://, alebo https://. Nieco o http a https si môžete prečitať na wikipedii. Aj keď generovanie a nasadzovanie certifikátov vyzerá veľmi jednoducho, tak v praxi je to komplikovanejší proces. Ako to cele funguje je pekne popísane na root.cz

Určite sa Vám v minulosti stalo, že ste na webe klikli na nejaký link a videli ste hlášku, že tato stránka je nebezpečná a rýchlo ju musíte opustiť, alebo kliknite na pokračovať a prijať certifikát. Toto sa môže stať pokojne aj dnes a stáva sa to vtedy ak si vytvárate a podpisujete certifikáty sami. Vašu CA nepozná žiadny web prehliadač a vyhlási, že tato stránka nie je bezpečná. Aj keď Vaša stránka je zabezpečená, ale vy nie ste dôveryhodná CA o ktorej by vedel niektorí z web prehliadačov. Preto je lepšie použiť certifikáty od dôveryhodných CA

Poďme sa pozrieť na to ako si jednoducho vygenerujeme a stiahneme certifikáty od Let’s Encrypt. Popis bude pre Debian, ale malo by to fungovat vo všetkých OS linux postavených na Debiane.

  • aktualizujeme sources list
  • nainštalujeme git
  • zalogujeme sa ako root
  • naklonujeme do / letsencrypt zdroje z gitu
  • prepneme sa do cd letsencrypt a vygenerujeme cert
sudo apt-get update
sudo apt-get install git  
su root
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --webroot -w /var/www/path_to_directory -d web1.ddns.info -d www.web1.ddns.info

Ak všetko prebehlo v poriadku, tak na výstupe by sme mali vidieť niečo podobne

root@local-server:~/letsencrypt# ./letsencrypt-auto certonly --webroot -w /var/www/path_to_directory -d web1.ddns.info -d www.web1.ddns.info
Checking for new version...
Requesting root privileges to run letsencrypt...
   /root/.local/share/letsencrypt/bin/letsencrypt certonly --webroot -w /var/www/path_to_directory -d web1.ddns.info -d www.web1.ddns.info
 
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/web1.ddns.info/fullchain.pem. Your cert
   will expire on 2016-06-18. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:
 
   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Potom musíme upraviť konfiguračný súbor virtualhosta

nano /etc/apache2/sites-available/var/www/path_to_directory.conf 

ktorý bude vyzerať nasledovne. Tento konfigurak zabezpečí aj to, že keď uživatel zadá do web prehliadača len web1.ddns.info, tak sa tam automaticky doplní https://www.web1.ddns.info

<VirtualHost *:80>
        DocumentRoot /var/www/path_to_directory
        ServerName web1.ddns.info
        ServerAlias www.web1.ddns.info
        ServerAdmin webmaster@web1.ddns.info
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^web1\.ddns\.info$ [NC]
    RewriteRule ^(.*)$ http://www.web1.ddns.info$1 [R=301,NE,L]
        RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]
</VirtualHost>
  
<VirtualHost *:443>
        DocumentRoot /var/www/path_to_directory
        ServerName web1.ddns.info
    ServerAlias www.web1.ddns.info
    ServerAdmin webmaster@web1.ddns.info
  <IfModule mod_ssl.c>
        SSLEngine on
        SSLCertificateKeyFile /etc/letsencrypt/live/web1.ddns.info/privkey.pem
        SSLCertificateFile /etc/letsencrypt/live/web1.ddns.info/cert.pem
        SSLCertificateChainFile /etc/letsencrypt/live/web1.ddns.info/chain.pem
#       SSLCertificateChainFile /etc/letsencrypt/live/web1.ddns.info/fullchain.pem
  </IfModule>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} ^web1\.ddns\.info$ [NC]
        RewriteRule ^(.*)$ https://www.web1.ddns.info$1 [R=301,NE,L]
</VirtualHost>

Následne môžeme povolit web (ak nie je) a reštartovať apache2

a2ensite path_to_directory.conf
service apache2 restart

Certifikát je teraz platný na 90 dni. Pred uplynutím platnosti je potreba spravit aktualizáciu a certifikát sa obnoví na ďalších 90 dni. Ako sa aktualizuje a ako sa da aktualizácia certifikátov automatizovat úkažem niekedy nabudúce.

Leave a Reply

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *