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.