Jak funguje HTTP a HTTPS ve WordPressu

HTTP (Hypertext Transfer Protocol) – jedná se o protokol z rodiny TCP/IP a tím pádem je možné jeho pomocí přenášet široké spektrum dat. Text, obrázky, video atp. Právě díky němu je možné používat internet tak jak ho známe. Server dostane požadavek od klientského počítače, zpracuje ho a pošle odpověď. Detailnější popis fungování není podstatný. Dnes se zaměřím jen na první a poslední část komunikace.

Požadavek a odpověď

Takhle nebo velmi podobně vypadá požadavek který váš prohlížeč pošle serveru. Je to takzvaná hlavička a prohlížeč v ní říká co od serveru čeká za odpověď.  A odpověď mu přijde

Jak vidíte, je to odpověď přesně podle očekávání prohlížeče a stránka se vám pak zobrazí. Bohužel v tomhle typu komunikace se skrývá riziko odposlechu. Tzv. Man-in-the-middle útoku, takže kdokoli chce, může sledovat vaši komunikaci.

Někoho chytrého kdysi napadlo, že by se dala tahle komunikace šifrovat. Jasně, server si vygeneruje certifikát, soukromý a veřejný klíč a všechno se zdá být bezpečné. Jenže se ten problém jenom přesunul o krok dál. Stejný typ útoku se dá provádět dál, jenom potřebujete nepatrně výkonnější počítač.

Čtěte  Seznam Wordpress šablon, ohrožených bezpečnostní chybou v Revolution slideru

A tehdy vzniklo HTTPS

Tedy alespoň tak jak ho používáme dnes. Certifikáty vydávají certifikační autority a proto to stojí peníze. Naštěstí existuje pár způsobů jak získat certifikát zdarma. Třeba Let’s encrypt. A přes to, že nic nestojí, není na nich vůbec nic špatného. Takový certifikát se nedá podvrhnout pokud nekompromitujete společnost která ho vydala. A i přes to, že k takovému incidentu už došlo, není to úplně častá praxe.

A jak to vlastně funguje?

Velmi zjednodušeně, váš počítač odešle hlavičku s požadavkem na web a technologiemi, které podporuje. Server pošle svůj certifikát a veřejný klíč, který bude počítač používat k šifrování odesílaných dat a je to. No a pak už je vaše komunikace šifrovaná a data která odesíláte jsou v bezpečí.

Co když to nefunguje?

Občas se stane, že narazíte na web, který má vypršelý nebo nefunkční certifikát. Obvykle má nějaký záložní, self-signed (špatný certifikát, podepsaný sám sebou, nemáte jistotu, že vás někdo nesleduje). Většinou stačí počkat, on si toho někdo všimne. Prohlížeč vás na takovou situaci upozorní.

Také je možné, že se vám místo zeleného zámku zobrazí žlutý. To znamená tzv. mixed content. Některé části webů jsou zabezpečené a některé ne. Teoreticky to může znamenat, že je web kompromitovaný, většinou to, ale je jenom nějaká nepozornost majitele a nic to neznamená. Přesto si dejte pozor pokud takovému webu dáváte svá data.

Čtěte  Vyhledání škodlivého kódu v šablonách

Jak nasadit HTTPS do WordPressu?

Existují dva způsoby. Buďto můžete použít plugin WP Force SSL, který bude vynucovat https i u odkazů, které běží na http. Bohužel tohle řešení s sebou nese lehčí výkonový postih a může způsobit i jiné poruchy, nejčastěji nekonečnou smyčku.

Druhá možnost je, že si dáte tu práci a všechny odkazy v databázi přepíšete z http na https. Nejjednodušší je použít plugin better search and replace a prostě nahradit jedno za druhé. Bohužel tahle varianta vám pomůže jenom pokud váš hosting umí vynutit přesměrování na https. Pokud ne, tak můžete zkusit toto nastavení souboru htaccess.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

V případě, že máte VPS nebo server, tento problém většinou odpadá.

About The Author

Related posts

Leave a Reply

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Chcete mít přehled o dění ve světě WordPressu?

Přímo do vašeho emailu

Pravidelný přehled o novinkách, trendech a událostech, které se točí kolem WordPressu. Souhrn toho nejzajímavějšího od nás i ze zahraničí.