Co je HTTPS, jak funguje a proč ho nasadit na web
📝Obsah
Co je HTTP a HTTPS
HTTP je zkratka pro Hypertext Transfer Protocol. V praxi není potřeba znát detaily a velmi jednoduše jde o protokol, kterým se přenášejí data mezi serverem a internetovým prohlížečem. http (Nebo https) tak naprosto typicky najdete na začátcích URL adres webů.
HTTPS, tedy se S na konci, jen přidává slovíčko Secure, tedy zabezpečené. V praxi je tedy HTTPS stále přenos dat přes HTTP, ale je šifrovaný. To je zásadní, když jde o přenos citlivých údaji, jako jsou přístupové údaje, jména, adresy, čísla karet, e-mailové adresy nebo libovolné další údaje, které rozhodně nechcete vytroubit celému světu.
V praxi jde říci, že naprosto každý web by měl využívat HTTPS, a všechny modernější internetové prohlížeče dávají uživatelům vědět, že jsou nebo nejsou na zabezpečených stránkách.
Například Google Chrome ukazuje u nezabezpečených stránek vedle adresního řádku toto:
Naopak u zabezpečených se objeví zámeček, který značí, že je přenos bezpečný:
Jak HTTPS funguje?
Nebudeme zabíhat do vyložených podrobností, protože nemyslím, že jsou extrémně potřeba, pokud vám jde pouze o to spustit blog a zabezpečit přenos.
HTTPS používá šifrovací protokol, který se jmenuje Transport Layer Security (TSL), dříve známý také Secure Sockets Layer (SSL). Tento šifrovací protokol vytvoří nad HTTP novou vrstvu, která komunikaci zašifruje tak, že jí mohou dekódovat pouze body (tedy typicky internetový prohlížeč a server), mezi kterými komunikace probíhá. Využívá se k tomu asymetrické kryptografie, o které je potřeba vědět asi jen to, že před samotným zasíláním webových stránek je navázán takzvaný TSL/SSL handshake, kdy si internetový prohlížeč a server tam a zpátky vymění různé informace, které slouží k zašifrování přenosu.
Tohle všechno se naštěstí děje zcela na pozadí, takže se my nemusíme o nic starat a vše si mezi sebou vyřídí server a prohlížeč.
Proč je HTTPS důležitý?
Pokud se nacházíme v nějaké síti (ať domácí nebo když se třeba připojíme k wifi v restauraci nebo na letišti), vysíláme do této sítě řadu informací a řadu informací přijímáme. Pro zkušenějšího uživatele, který využívá klidně i zcela bezplatných programů, není problém odchytit všechna tato přijatá nebo odeslaná data. Stačí mu se připojit ke stejné síti.
Data odesílaná přes HTTP nejsou absolutně nijak zabezpečena. Jde prostě o text, který si může snadno přečíst. Libovolná data, která pošleme nezašifrovanou formou, tak můžeme předat jako na stříbrném podnose.
HTTPS tuto komunikaci zašifruje tak, že pokud ji někdo odchytí (což stále může), tak se stejně nic nedozví, protože půjde o zcela nesmyslnou změť znaků. Jak tuto změť převést zpátky do čitelné podoby pak ví pouze server a my (respektive náš prohlížeč).
Můžeme si možná říci, že když nezasíláme žádné důvěrné informace, hesla nebo něco podobného, tak nevadí, když půjdeme na nezabezpečené stránky. I tady je ale problém. Data mohou být jak odposlouchávána, tak k nim lze snadno něco přidat. Na webech se najednou mohou objevit prvky, které přidává nějaký prostředník, který komunikaci odchytil, upravil, a zaslal v nové formě. Typicky může jít třeba o reklamní prvky, ale v praxi i cokoliv jiného.
Jak přejít z HTTP na HTTPS
Pro přechod na HTTPS je potřeba si zařídit certifikát, který vydávají certifikační autority. V praxi jde jen o to, že zabezpečení a komunikace splňují šifrovací požadavky a že spojení tedy opravdu lze věřit.
Těchto certifikačních autorit je řada, ale pro založení blogu bude naprosto pohodlně stačit certifikát Let’s Encrypt, který je zcela zdarma, a co se zabezpečení spojení týče, splňuje veškeré požadavky. V zásadě je rozdíl mezi placenými certifikáty a Let’s Encrypt pouze v tom, co vše u Let’s Encrypt se ověřuje doména, ale již ne například organizace, která doménu vlastní. Placené certifikáty jsou tak spíše pro větší společnosti, ale ne pro menší blogy, za kterými nestojí velké firmy.
Pokud zakládáte nový blog, velmi doporučuji přechod na HTTPS vyřešit naprosto okamžitě, ještě než vydáte první článek nebo začnete řešit cokoliv jiného.
Vydání Let’s Encrypt certifikátu je naštěstí otázka pár kliknutí a každý trochu slušnější webhosting toho umožňuje přímo ve svém nastavení (obvykle kliknete, že chcete vydat certifikát, který se během pár minut až desítek minut vygeneruje, a to je celé).
Přesné umístění je potřeba najít a neporadím zde, kde přesně necháte certifikát vydat u toho nebo onoho webhostingu, ale zákaznická podpora nebo troška Googlení jistě pomohou. SSL certifikát je potřeba po čase obnovovat, ale i o to by se měl váš hosting postarat, abyste vše jednou nastavili (v praxi 3x kliknuli myší) a už se o nic nemuseli starat.
Pokud pak vydání certifikátu zdarma váš webhosting neumožňuje, bude myslím nejlepší se poohlédnout po jiném místě, kde svůj web mít. Tohle by totiž měl být naprostý základ.
Nezapomeňte na přesměrování stránek
Pokud někdo navštíví nezabezpečenou verzi vašeho webu, měl by být automaticky přesměrován na zabezpečenou, tedy https verzi. URL webu by tedy neměly začínat http:// , ale správně https://. A pokud bude někdo chtít na http://vasblog.cz, bude URL automaticky změněna na https://vasblog.cz.
O tom jak na přesměrování včetně hotových kódů, píšu tady. Je to krok, který opravdu nelze vynechat. Je to naštěstí otázka zase pár kliknutí nebo překopírování trochy textu, takže žádný strach.
Zabezpečený přenos přes HTTPS je hodnotící faktor pro vyhledávače
Pokud vás řádky výše nepřesvědčili, že byste opravdu měli HTTPS nasadit, tak možná toto pomůže. Ze SEO hlediska je totiž prostě lepší mít HTTPS, a i Google zdůrazňuje, že při hodnocení webů je toto faktor a přesun od roku 2016 doporučuje také Seznam.cz.
Ano, dnes má naprostá většina webů nasazené HTTPS, takže to není tak, že najednou překonáte konkurenci, na druhou stranu byste si nenasazením HTTPS podkopávali nohy.
Váš web by byl v očích vyhledávačů i čtenářů méně důvěryhodný, a časem se klidně stane, že prohlížeče začnou před návštěvou nezabezpečených webů čtenáře přímo varovat, než jim vůbec web zobrazí. To se dnes v nějakých případech děje a opravdu to vypadá strašně blbě a typický člověk prostě z webu u těch výstrah o nebezpečí odejde, protože to vypadá, že na webu máte virus nebo že web prostě nefunguje.
I kdybyste nechtěli nic o HTTPS vědět, už jen tohle by měl být dostatečný důvod se tomuto kroku při založení blogu pověnovat. Navíc doporučuji nic neodkládat, protože řešit přechod na již běžícím webu je komplikovanější a vyžaduje přísnější kontrolu, jestli vše proběhlo opravdu v pořádku. Když to vyřešíte hned (což trvá typicky pár minut), máte o starost méně i do budoucna.