1. díl – Jak přejít se svým dobrým webem na HTTPS

Google nedávno oznámil, že do algoritmu pro vyhledávání zařadil i hodnotu, jestli je daný web na HTTPS nebo ne. A to bude mít samozřejmě určitý dopad i na váš web, ať už používá protokol HTTP nebo HTTPS.

Prozatím je to pouze slabý signál, který se dotýká jenom malého procenta globálního vyhledávání, nicméně dává to vlastníkům webů dostatek času připravit se na přechod na HTTPS.

V tomto článku se tak podíváme jaký je význam pojmů SSL a HTTPS a jaký je mezi nimi rozdíl. A hlavně si předvedeme jak přesunout WordPress z nezabezpečené HTTP komunikace na protokol HTTPS.

SSL vs HTTPS

HTTPS na druhou stranu je schéma URI, které má identickou syntaxi jako standartní HTTP schéma, kromě svého žetonu (token). Nicméně HTTPS signalizuje prohlížeči, že má použít přidanou vrstvu šifrování pomocí SSL, aby ochránil komunikaci.

Stručně řečeno, SSL je standard, který definuje, jak jsou šifrována připojení přes HTTPS.

Jak SSL funguje

Typický SSL certifikát obsahuje název vaší domény, název spolešnosti, adresu, město, stát a zemi. Také bude obsahovat datum své expirace a detaily o certifikační autoritě, která je zodpovědná za vydání certifikátu.

V okamžiku, kdy se prohlížeč připojí k zabezpečenému webu, získá SSL certifikát stránky a zkontroluje, jestli neexpiroval, jestli je vydán autoritou, které prohlížeč věří, a jestli je používán právě tím webem, pro který je určen. Pokud certifikát neprojde jednou z těchto kontrol, zobrazí prohlížeč varování koncovému uživateli, aby věděl, že stránky není zabezpečená přes SSL.

Rozdíl mezi HTTP a HTTPS

Je hodně kritérií, kde se oba protokoly rozcházejí, nicméně podle mého názoru jsou následující tři ty hlavní, jak se od sebe HTTP a HTTPS liší.

  1. URL schéma: HTTPS URL začíná s https:// a používá port 443 jako hlavní, zatímco HTTP URL začíná s http:// a používá port 80 jako hlavní.
  2. Bezpečnost: HTTP je nezabezpečené a je tak náchylné k odposlechu, což může útočníkovi umožnit získat přístup k citlivým informacím, zatímco HTTPS je navrženo a zabezpečeno tak, aby takovým útokům odolalo.
  3. Síťová vrstva: HTTP operuje na nejvyšší vrstvě TCP/IP modelu, což je vrstva Aplikační. SSL operuje jako nižší podvrstva stejného TPC/IP modelu, ale šifruje HTTP zprávu pro odeslání a rozšifruje ji, když dorazí. Proto HTTPS není separátní protokol, ale využívá vlastně HTTP se zašifrovaným SSL připojením.

Proč použít HTTPS?

HTTPS je zvláště důležité na nezabezpečených sítích (jako je třeba Wi-Fi), protože kdokoli na stejné lokální síti může odchytávat pakety a zjistit tak citlivé informace.

Kolikrát se vám již stalo, že jste navštívili stránku na veřejné síti a otevřeli se vám v prohlížeči neočekávané reklamy?

Pokud poskytujete obsah vašeho webu bezpečně přes HTTPS, garantujete tak, že nikdo nezmění to, jak se stránka zobrazí uživateli. Pokud to myslíte vážně s fungováním online, potřebujete prostě SSL. Je to nejlepší cesta jak ochránit uživatelská data a bránit se proti krádeži identity.

Hodně lidí již dnes odmítá pracovat s weby, které nemají SSL certifikát. Používáním SSL tak dáváte lidem najevo, že mohou používat váš web s důvěrou, že je komunikace chráněna.

Přesunutí WordPressu z http na https

Aby mohl web běžet na HTTPS je nejdříve potřeba zajistit SSL certifikát pro danou doménu, tedy mít ho nainstalovaný na serveru. Toto naštěstí za nás již vyřešili správci skautských serverů. Takže nám nebrání nic v tom, abychom změnili http na https.

Konfigurace WordPressu pro SSL/HTTPS

Všechny odkazy/linky ve WordPressu (obrázkové přílohy, kaskádové styly šablony a soubory javascriptů) jsou relativní vůči instalační URL.

Pro změnu HTTP na HTTPS musíme proto instalační URL změnit dejme tomu z http://dsw-oddil.skauting.cz na https://dsw-oddil.skauting.cz.

  • Přihlašte se do vašeho WordPressu a přejděte na Nastavení > Obecné.
  • Ujistěte se, že Instalace WordPressu (URL)Úvodní stránka webu (URL) začínají https. Pokud ne, přidejte S za http a uložte.
 

Pro jednoduché zapnutí (a vynucení) administrace WordPressu přes SSL je potřeba ještě přidat do konfiguračního souboru webu wp-config.php konstantu FORCE_SSL_ADMIN a nastavit ji na hodnotu true. Veškerá přihlášení a sezení tak již půjdou přes SSL.

define('FORCE_SSL_ADMIN', true);

Co dál?

Nyní, když jsme úspěšně přesunuli WordPress na HTTPS, je potřeba ještě dodělat pár dalších věcí – vytvořit permanentní přesměrování (301 permanent redirect) na HTTPS, ověřit, že opravdu všechna url v databázi jsou na HTTPS a informovat Google o změně URL.

Permanentní přesměrování (301 permanent redirect) zajistíte tak, že se přihlásíte na váš FTP server a kód níže vložíte na začátek souboru s názvem .htaccess.

# Force HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Dále je potřeba se přesvědčit, že všechna url jdou přes HTTPS. To nejjednodušeji zjistíte v konzoli vašeho prohlížeče (po stisknutí F12), kde se následně zobrazí varování ohledně Mixed Content. Tedy že web jede přes HTTPS, ale stále ještě jsou některé prvky načítány přes HTTP.

 

Proto je potřeba ještě upravit některé záznamy v databázy. Jedná se hlavně o příspěvky, kdy jsou vloženy třeba externí obrázky nebo jiné přílohy. A vzhledem k tomu, že to nechceme dělat ručně, tak si pomůžeme několika skripty.

Přihlašte se do administrace databáze na https://mysql.skauting.cz/, vyberte vaši databázi a pustťe následující SQL skripty.

UPDATE wp_posts 
SET    post_content = ( Replace (post_content, 'src="//', 'src="//') )
WHERE  Instr(post_content, 'jpeg') > 0 
        OR Instr(post_content, 'jpg') > 0 
        OR Instr(post_content, 'gif') > 0 
        OR Instr(post_content, 'png') > 0;
UPDATE wp_posts 
SET   post_content = ( Replace (post_content, "src='//", "src='//") )
WHERE  Instr(post_content, 'jpeg') > 0 
        OR Instr(post_content, 'jpg') > 0 
        OR Instr(post_content, 'gif') > 0 
        OR Instr(post_content, 'png') > 0;
UPDATE wp_postmeta 
SET meta_value=(REPLACE (meta_value, 'iframe src="//','iframe src="//'));

Nahradíme tak protokol http:// za https://.

Nyní nám již zbývá pouze informovat Google o změně url našeho webu. Stačí znovu přidat URL webu do Google Webmaster Tools (avšak tentokrát s https://).

SSL status vašeho webu můžete zkontrolovat třeba pomocí Qualys SSL Labs.

Závěrem

Pokud jste zvládli dočíst tento návod a převést váš web na HTTPS, tak vám gratuluji. Měli by jste mít podstatnou znalost o HTTPS a SSL a proč je používat a proč zajišťují vašemu webu a vašim uživatelům ochranu. Bude-li mít jakékoli otázky, rád na ně odpovím v komentářích.