Aktivace SSL certifikátu na Ubuntu pomocí Certbot

Upraveno 8 prosince, 2023 12:34

Pokud provozujete webhosting jako já na vlastním serveru, první, co by Vás mělo zajímat je primárně jeho bezpečnost. A teď nemluvím pouze o bezpečnosti serveru, ale také o bezpečnosti webu, který na serveru provozujete. Aktivním prvkem, který je v dnešní době velmi důležitý je SSL certifikát. Pomocí SSL certifikátu šifrujete data mezi Vaším serverem a počítačem uživatele, který se na Váš web dívá. V tomto návodu se dozvíte, jak probíhá aktivace SSL certifikátu na Ubuntu pomocí Certbot. Díky funkcionalitě Certbot budete mít instalaci i zprovoznění certifikátu výrazně zjednodušenou. A bonus navíc, Certbot se Vám také postará o následné automatické prodlužování certifikátu, který je standardně vystavený pouze na 90 dní.

Proč je důležité, abyste šifrovali data na webu pomocí https a SSL?

Představte si, že mezi Vaším serverem a počítačem člověka, který čte obsah Vašeho webu je něco, co můžeme nazvat komunikační kanál. V tomto kanálu si Váš server s prohlížečem uživatele na druhé straně předávají informace. Prohlížeč uživatele požaduje nějaká data a obsah a naproti tomu server zpracovává požadavky prohlížeče a data následně odesílá.

Požadavky uživatele i data proudí přes internet v jakémsi komunikačním kanále, kdy tyto dva stroje mezi sebou komunikují a vyměňují si požadavky. Pokud nepoužijete HTTPS a SSL certifikát, předává server data uživateli na druhé straně jako text v nešifrované podobě. To samé odesílá uživatelův počítač serveru. A teď si představte, že uživatel bude zadávat přihlašovací údaje do administrace, nebo by se snažil na web vložit citlivé údaje, jako např. číslo platební karty. Tyto data by pluly internetem jako holá data, zcela bez jakékoliv ochrany.

Man in the middle

Aktivace SSL certifikátu na Ubuntu pomocí Certbot

Pokud byste toto udělali, vystavujete se riziku, kterému se odborně říká „Man in the middle“ útok. Volně přeloženo je „útok muže uprostřed“. Co to znamená? Je to jednoduché. Do prostředku Vašeho komunikačního kanálu se postaví hacker. Komunikace tedy už nebude uživatel-server, ale ale uživatel-hacker-server.

Hacker bude uprostřed Vaší komunikace odchytávat data, která se odesílají na server a zpět. Pokud nebudou v zašifrované podobě, odevzdáváte citlivé údaje hackerovi doslova na zlatém podnose. Proč? Protože je dostane v čisté textové podobě. Hesla, čísla karet a veškeré citlivé údaje o uživateli vystavujete potenciálnímu nebezpečí.

Pokud ale použijete SSL a HTTPS, dostane hacker data zašifrovaná. Díky tomu nebude schopen dešifrovat původní obsah a data tak zůstanou v bezpečí. To je jednoduché vysvětlení pro to, proč opravdu musíte mít na webu SSL a používat HTTPS protokol. Samozřejmě druhá strana mince je taková, že pokud HTTPS nepoužijete, nebude Vám na webu fungovat platební brána a Google Vás bude penalizovat. Toť tedy k vysvětlení, proč je nutné, abyste SSL a HTTPS na webu
používali.

Aktivace SSL certifikátu na Ubuntu pomocí Certbot

Nyní se pojďme konečně podívat na to, jak můžete SSL certifikát na serveru zprovoznit. Díky Certbot funkcionalitě je opravdu velice jednoduché a stačí k tomu opravdu jen základní znalost Linuxového serveru. Pokud se umíte na server připojit pomocí SSH, zvládnete to, jelikož předpokládám, že už jste zvládli i vytvoření webu, případně instalaci PHP či jiných komponent.

Jako první krok tedy nainstalujte komponentu Cerbot pomocí tohoto příkazu:

				
					sudo apt install certbot python3-certbot-apache
				
			

Jakmile se certbot nainstaluje, zkontrolujte si pro jistotu doménu, pro kterou budete certifikát instalovat. Doménu webu zjistíte v konfiguraci Apache, obvykle na adrese:

				
					/etc/apache2/sites-available/vase_domena.conf
				
			

Konfigurační soubor editujte a podívejte na na řádky ServerName a ServerAlias. Zde máte definovanou doménu Vašeho webu, kdy je obvykle ServerName doména druhého řádu a ServerAlias je subdoména s www.

Zkontrolujte si firewall

Jelikož HTTPS funguje na portu 443 a HTTP na portu 80, musíte zajistit, že na firewallu bude port 443 povolený. Jednoduchou kontrolu můžete provést příkazem:

				
					sudo ufw status
				
			

Tento příkaz Vám vypíše aktuální pravidla firewallu a pokud mezi samostatně port 443, nebo případně „Apache Full“, musíte pravidla přidat. Pokud máte ve výpisu vidět pouze „Apache“, budete muset toto pravidlo smazat a vytvořit nové pro „Apache Full“. Rozdíl je totiž v tom, že „Apache“ je pouze pro port 80, kdežto „Apache Full“ je pro oba porty. Tedy jak pro 80, tak i pro 443.
Použijte tedy tento příkaz:

				
					sudo ufw delete allow 'Apache'
sudo ufw allow 'Apache Full'
				
			

Díky těmto příkazům nejprve smažete klasckého Apache na portu 80 a následně ihned přidáte Apache Full pro oba porty. Pokud si pravidla řešíte jiným způsobem, povolte přístup přímo pro port 443.

Získejte certifikát pomocí Certbot

Certbot poskytuje různé způsoby kterými můžete získat SSL certifikát pomocí pluginů. Plugin Apache se postará o překonfigurování Apache a znovu načte konfiguraci vždy, když je to potřeba. Abyste použili tento plugin, napište následující příkaz:

				
					sudo certbot --apache
				
			

Tento skript vás postupně vyzve, abyste odpověděli na sérii otázek, díky kterým se Váš SSL certifikát správně nakonfiguruje. Nejprve Vás požádá o Vaší e-mailovou adresu:

				
					Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): mail@vase_domena
				
			

Následně se Vás Certbot zeptá, zda chcete sdílet svou e-mailovou adresu s Electronic Frontier Foundation, abyste dostávali novinky, případně další informace na Váš e-mail. Pokud si nepřejete přihlásit se k odběru jejich obsahu, napište N. V opačném případě napište Y. Poté stiskněte ENTER pro pokračování na další krok.

				
					Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
				
			

V následujícím kroku budete požádáni, abyste Certbotovi sdělili, pro které doménu chcete aktivovat HTTPS. Seznam domén si Certbot automaticky vytáhne z konfigurace virtuálního hostitele Apache. Právě z toho důvodu je důležité, abyste v konfiguračním souboru viz výše měli správně definovaný ServerName a ServerAlias. Pokud chcete povolit HTTPS pro všechny uvedené domény v seznamu (doporučeno), můžete nechat pole pro odpověď prázdné a stisknout pouze ENTER a pokračovat dále. V opačném případě vyberte doménu, pro kterou chcete povolit HTTPS, tím, že uvedete číslo ze seznamu. Pro více domén napište odpovídající čísla oddělená čárkou a mezerou (1, 3, 9 …).

				
					Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: vase_domena
2: www.vase_domena
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 
				
			

Uvidíte následující výstup:

				
					Obtaining a new certificate
Performing the following challenges:
http-01 challenge for vase_domena
http-01 challenge for www.vase_domena
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/vase_domena-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/vase_domena-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/vase_domena-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/vase_domena-le-ssl.conf
				
			

Přesměrování provozu z HTTP na HTTPS

Nyní budete Certbotem vyzváni k tomu, abyste vybrali, zda chcete nebo nechcete přesměrovávat HTTP provoz na HTTPS. To znamená, že pokud někdo zadá Vaší doménu do prohlížeče s HTTP, bude automaticky přesměrován na HTTPS provoz. Tato varianta je doporučená. Vyberte 1, pokud automatické přesměrování nechcete, případně 2 pokud chcete veškerý provoz směrovat pouze na HTTPS a volbu potvrďte klávesou enter.

				
					Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
				
			

Po tomto kroku máte konfiguraci SSL pomocí Certbot dokončenou a seznámíte se pouze s posledními detaily ohledně toho, kde najdete vygenerované soubory a jak otestovat vaši konfiguraci pomocí externího nástroje, který analyzuje autentičnost vašeho certifikátu.

				
					Congratulations! You have successfully enabled https://vase_domena and
https://www.vase_domena

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=vase_domena
https://www.ssllabs.com/ssltest/analyze.html?d=www.vase_domena
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/vase_domena/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/vase_domena/privkey.pem
   Your cert will expire on 2020-07-27. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
				
			

Automatická obnova certifikátu před vypršením platnosti

Certifikát je platný pouze na 90 dní a proto je důležité, abyste certifikát pravidelně obnovovali. Nicméně nemusíte se bát, i toto udělá Certbot za Vás. Balíček Certbot, který jsme na začátku návodu nainstalovali se postará o obnovu certifikátů. Zahrnuje skript pro obnovu v adresáři /etc/cron.d, který je spravován službou systemctl nazvanou certbot.timer. Tento skript se spouští dvakrát denně a automaticky obnovuje jakýkoli certifikát, který vyprší do třiceti dnů.

Pokud se chcete ujistit, že je služba automatického obnovování aktivní, můžete použít tento příkaz:

				
					sudo systemctl status certbot.timer
				
			

Pravděpodobně dostanete takovýto výstup:

				
					● certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Tue 2023-05-28 16:42:48 UTC; 17h ago
    Trigger: Wed 2023-05-28 23:40:21 UTC; 12h left
   Triggers: ● certbot.service

May 28 17:57:48 fine-turtle systemd[1]: Started Run certbot twice daily.
				
			

Pokud chcete spustit proces obnovy nanečisto, abyste se přesvědčili, že vše funguje a nenastane problém, použijte tento příkaz:

				
					sudo certbot renew --dry-run
				
			

Pokud neuvidíte žádné chyby, máte konfiguraci HTTPS a SSL dokončenou a můžete si gratulovat.

Aktivace SSL certifikátu na Ubuntu pomocí Certbot

Závěr

Jak vidíte, tedy pokud jste došli až sem, nebyla konfigurace SSL nikterak složitá. Díky nástroji Certbot, který udělal prakticky vše za Vás, je instalace opravdu jednoduchá a obsahuje pouze několik málo příkazů a testů konfigurace. Pokud Vám návod pomohl, nebo jste díky němu zvládl kompletně celý instalační proces, prosím, dejte mi zpětnou vazbu pomocí hodnocení níže. Případně také můžete nechat komentář.

Web je vytvářen s pečlivostí k obsaženým informacím. Snažím se poskytovat kvalitní a užitečný obsah, který ostatním pomáhá, nebo je inspiruje. Pokud jste spokojeni s mou prací a chtěli byste mě podpořit, můžete to udělat prostřednictvím jednoduchých možností.

Byl pro Vás tento článek užitečný?

Klikni na počet hvězd pro hlasování.

Průměrné hodnocení. 5 / 5. Počet hlasování: 1

Zatím nehodnoceno! Buďte první

Jak užitečný vidíte tento článek.

Sledujte mě na sociálních médiích.

Je mi líto, že pro Vás nebyl článek užitečný.

Jak mohu vylepšit článek?

Řekněte mi, jak jej mohu zlepšit.

newsletter

Odebírejte Newsletter

Buďte v obraze! Připojte se k odběru newsletteru a buďte první, kdo získá nejnovější informace přímo do vaší e-mailové schránky. Sledujte aktuality, exkluzivní události a inspirativní obsah, přímo na Vašem e-mailu.  

Odebírat
Upozornit na
guest
0 Komentáře/ů
Nejstarší
Nejnovější Nejvíce hlasováno
Vložené zpětné vazby.
Zobrazit všechny komentáře.

Pokud mi chcete napsat rychlou zprávu, využije, prosím, níže uvedený
kontaktní formulář. Děkuji.

Další Kontaktní údaje