Stále přemýšlíte, zda přejít na všude proklamované HTTPS a bojíte se toho? Už nemusíte. Sám jsem úspěšně provedl převod několika svých webů na WordPressu na HTTPS. Zde vám nastíním, jaké kroky jsem podnikl, co jsem si mohl předem připravit a přiblížím, jak se změna projevila na návštěvnosti.
Co je HTTPS? Rozdíl mezi HTTP a HTTPS
HTTPS (Hypertext Transfer Protocol Secure) je v informatice nadstavba síťového protokolu HTTP, která umožňuje zabezpečit spojení mezi klientem (např. webovým prohlížečem) a serverem před odposloucháváním, podvržením dat a umožňuje též ověřit identitu protistrany. HTTPS používá protokol HTTP, přičemž přenášená data jsopokračováníu šifrována pomocí SSL nebo TLS a standardní port na straně serveru je 443. {zdroj: Wikipedia}
Povolte HTTPS na svém hostingu
Jako první krok jsem si zjišťoval, jak je to s pořízením certifikátu. Uvažoval jsem o placené službě, ale nakonec mi bylo hned z několika na sobě nezávislých zdrojů doporučeno využít certifikát LetsEncrypt, který je zdarma.
Sám jsem nakonec SSL certifikát LetsEncrypt využil i z důvodu toho, že je podporován mým hostingem, kterým je Ebola. V administraci mají vše připraveno a tak stačí jen povolit HTTPS protokol a je hotovo :).
Stejný certifikát používají i u tolik oblíbeného Wedosu – stačí jim poslat žádost o povolení certifikátu a oni vám jej zprovozní (podle všeho nejpozději do jednoho pracovního dne, zpravidla ale obratem).
Drobnou nevýhodou certifikátu LetsEncrypt je jeho relativně krátká doba platnosti a s tím spojená nutnost jeho prodlužování a to každé 3 měsíce.
Naštěstí má i tuto službu Ebola (i Wedos) zmáknutou a tak se certifikát automaticky každé 3 měsíce obnovuje. Mně tak odpadá nutnost sledovat délku platnosti certifikátu – ještě že tak, přesně vím, jak by to dopadlo :D.
Nastavení přístupu k HTTPS na WordPressu
Jakmile máte HTTPS na hostingu povolené, přihlaste se do WordPressu a rovnou přejděte do sekce Nastavení – Obecné, kde změňte adresu HTTP na HTTPS, uložte.
Přesměrování pomocí 301
V následujícím kroku je nutné editovat soubor .htaccess, který naleznete v domovské složce vašeho webu. Do tohoto souboru přidejte níže uvedený kód, který zajistí, aby případní příchozí návštěvníci původně jdoucí na adresu s HTTP, skončili na HTTPS.
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule>
Za kód děkuji Pavlovi Kočárkovi :).
Pokud chcete mít zabezpečené přihlášení do WordPressu, což doporučuji, editujte soubor wp-config.php, kam přidejte tento kód:
define('FORCE_SSL_ADMIN', true);
Hotovo!
Pokud se vám to povedlo, tak se vám po zadání adresy webu zobrazí před URL webu zelený zámeček.
Pro kontrolu doporučuji využít prohlížeč Google Chrome – umožňuje totiž hlubší analýzu. Můj popis a níže uvedené rady se tak budou vztahovat právě k tomuto prohlížeči :).
Problém?
Postupovali jste podle návodu a přesto jste zelený zámeček nezískali?
Vypadá to u vás takto – přeškrtnutý protokol HTTPS? Pak používáte neplatný certifikát – zkuste vyřešit s dodavatelem vašeho certifikátu.
Mnohem častěji se ale setkáte se stavem, kdy máte před URL adresou ikonku vykřičníku.
Když na ikonku vykřičníku kliknete a přejdete na odkaz Podrobnosti, v prohlížeči se vám zobrazí okno, kde budete mít pravděpodobně uvedeno, že na webu používáte jak HTTP, tak i HTTPS adresy (mixed content).
Tato zpráva znamená, že na webu používáte HTTP adresy pro provázání obsahu, pro odkazy na obrázky, v menu apod. Prostě a jednoduše, používáte/používali jste absolutní adresy místo relativních.
Tedy místo odkazu „/affiliate“ jste používali odkazy ve tvaru „http://www.josefkroupa.cz/affiliate“.
Co teď? Musíte všechny adresy změnit.
Můžete je změnit buď ručně, pomocí hromadného příkazu v databázi nebo s pomocí této služby.
A kde všude je třeba změnit URL adresy?
- Příspěvky
- Kategorie – pokud používáte URL odkazy v popisu kategorií
- Štítky – pokud používáte URL odkazy v popisu štítků
- Stránky
- Widgety
- Ručně vytvořené odkazy v menu
- Komentáře
- Bannery – pokud je máte uloženy u sebe na webu a odkazujete na ně
Sám jsem měl bohužel natvrdo nastavené odkazy i v šabloně a v CSS – musel jsem je změnit i zde.
V posledním kroku jsem změnil odkaz v souboru robots.txt, kde odkazuji na soubor Sitemap. Pozor si dejte i na různé pluginy, kde používáte odkazy – i zde je musíte změnit.
Pokud se vám ukazuje, že na webu mixujete HTTP/HTTPS a stále nemůžete přijít na to, kde je zakopaný pes, klikněte na ikonku vykřičníku před URL, vyberte Podrobnosti a dole v okně klikněte na jediný odkaz v části Mixed content. Zobrazí se vám další okno s výpisem všech URL, kde máte nastaveny adresy s HTTP protokolem. Pokud se žádné URL nezobrazí, načtěte okno znovu (klávesa F5 nebo command + R).
Pokud jste dohledali a změnili všechny adresy, konečně máte na webu kýžený zelený zámeček :).
TIP: U dalších webů, které jsem převáděl jsem si předem změnil všechny adresy předem. Následný přechod na HTTPS tak byl otázkou pár minut.
Co se týče WordPressu, web již nyní sice používá zabezpečený protokol, přesto doporučuji věnovat změnám ještě pár minut času a postupně změnit adresy i v níže uvedených nástrojích a službách.
Změna URL u externích služeb a nástrojů
Pokud používáte různé nástroje třetích stran, například pro měření pozic, trackování, heatmapy,… změňte URL adresu i zde. Níže uvádím ty dle mého soudu nejdůležitější služby.
Google Analytics
Pokud měříte návštěvnost přes Google Analytics, doporučuji změnit typ protokolu v části: Administrátor – Nastavení služby – Výchozí adresa URL – z rozbalovacího menu vyberte HTTPS verzi.
Search Console
V nástroji Search Console jsem založil novou službu pro HTTPS verzi webu a přidal novou Sitemapu. Původní verzi s HTTP můžete smazat – ale pozor!, přijdete tím o data. Proto, pokud o původní data stojíte, před smazáním si je nejdříve exportujte.
Přidat URL Seznam
Stránka, pomocí které přidávám většinu nových stránek do vyhledávání na Seznamu – Přidat URL. Zde jsem zadal novou adresu webu https://www.josefkroupa.cz, aby si Seznam co nejrychleji všiml, že jsem web překlopil :).
Seznam – nástroj pro webmastery
Web jsem si po převodu rovněž nechal prověřit nástrojem pro webmastery od Seznamu, abych viděl, že Seznam novou verzi webu „vidí“ a že u ní neregistruje žádné problémy :).
Bing webmaster Tools
Novou adresu jsem přidal i do nástroje pro webmastery od Bingu.
Kontrola chybných URL
Jelikož jsem na webu měnil hromadu adres, nainstaloval jsem si plugin Broken Links checker a nechal ním prověřit všechny odkazy, které mám v článcích. Díky tomu jsem narazil na několik odkazů, u nichž jsem při přepisu udělal chybu v podobě překlepu a odkazy tak nikam neodkazovaly.
Změna URL přesměrovaných stránek
Pokud v rámci webu používáte přesměrování již neexistujících stránek na stránky nové (např. pomocí 301), změňte původní HTTP adresy na verze s HTTPS.
Vše zkontrolujte
Máme hotovo, přesto doporučuji překontrolovat následující:
- na převedeném webu si proklikejte několik stránek, vyzkoušejte různé prohlížeče
- zkontrolujte Search Console, zda vám nepíše nějaké chyby a průběžně kontrolujte, zda roste počet zaindexovaných stránek
- zkontrolujte indexaci svého webu ve vyhledávačích pomocí parametru site:, pokud klíčová stránka webu ve fulltextu chybí, přidejte ji ručně přes výše popsanou službu u Seznamu
Proč to všechno?
Ptáte, proč byste měli svůj web převádět na zabezpečený protokol HTTPS? Kromě toho, že budou data zašifrována, jedná se o jeden ze SEO faktorů, který bude podle Matta Cuttse zvýhodňovat zabezpečené weby oproti těm nezabezpečeným.
Reading "HTTPS as a ranking signal": http://t.co/nEjcGhm8bJ
— Matt Cutts (@mattcutts) August 7, 2014
Od ledna 2017 bude navíc prohlížeč Google Chrome před URL adresou některých webů zobrazovat výrazné upozornění Not secure, tedy info o nezabezpečeném webu.
V neposlední řadě budou výhledově HTTP weby penalizovány, proti HTTPS verzím. O přechodu bych tedy doporučoval minimálně přemýšlet…
Pokud stále přemýšlíte nad přechodem z HTTP na HTTPS, možná vám pomůže rozhovor s Dušanem Janovským ze Seznamu.
Závěr o přechodu na HTTPS a doporučení
Celého převodu jsem se osobně hodně bál, nakonec mě vcelku snadný a hladký průběh mile překvapil. Počet indexovaných stránek na Seznamu i na Googlu pomalu roste, propad pozic, ani návštěvnosti jsem na žádném svém převedeném webu nezaregistroval.
Průběžně sleduji pozice klíčových slov v nástroji Collabim, připravil jsem proto pokračování tohoto článku, kde ukazuji, jak se změnily pozice významných klíčových slov.
Doporučovat https je super, ale myslím, že něco lze dělat jednodušeji a lépe, hlavně u WordPressu. Převáděl jsem nedávno svůj eshop, který jeden na WP + Woo, takže jsem se v problematice vrtal dost dlouho.
1. htaccess – za mě např. takto
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Funguje univerzálně není nutné měnit url, ale především je nutné R=301, jinak je přesměrování přes 302, což je jedno u Google, ale u seznamu si nejsem tak jist. (i váš web je přesměrován přes 302 ;-) )
2. odkazy v příspěvcích, widgetech, menu atd. lze upravit jedním krokem pomocí nástroje https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
V mám případě to byla změna http://www.rostoucinabytek.com na https://www.rostoucinabytek.com Určitě je nutné použít celou základní url, jinak by jste mohli změnit externí odkazy, které vedou na http weby, což by mohlo vracet chyby v odchozích odkazech, což také není správně.
Před využitím tohoto nástroje určitě zálohovat, kdyby skript neproběhl komplet nebo došlo k nějaké chybě.
Pavle,
díky moc za tip na službu, která by mi pomohla se změnou URL :) Já mám rád otrockou práci, tak jsem si to všechno prošel sám ručně :D
Nejrychlejší by mi stejně přišlo udělat změny pomocí příkazu v databázi. Ale nejsem v tom moc kovanej, tak abych si to nedoprasil…
Rovněž díky za tip ohledně .htaccess – kód jsem upravil a dal Ti tam referenci :)
Ahoj, mam jen tip… chtělo by trochu zmenit i text nad změněným kódem. Jedu podle návodu a hledám, kde změním „www.vasweb.cz“ na svůj – jak píšeš. A až z komentářů poznám, že kód byl upraven a funguje univerzálně :-)
Jinak supr článek – dík.
Ahoj Pepo,
vyčerpávající článek! Namísto googlení všeho potřebného mi postačí tvůj článek, jako návod.
Ahoj Jaro,
díky a doufám, že jsi převod na HTTPS zvládnul bez problémů :)
Zdravím,
a děkuji za článek. Potřebovala jsem na webu jednoho klienta nastavit https, a tenhle článek je přesně to, co jsem potřebovala.
Lýdie,
jsem rád, že článek pomohl :).
Pepo, návod i mě pomohl, jak jsem psal na FB. Také jsem toto téma rozepsal, porovnal několik českých webhostingů, jak to mají s https a to vše v mém článku zde https://www.miloslacha.cz/jak-nastavit-https-u-wordpress-webu/
Miloši, jsem rád, že Ti můj návod byl k něčemu :) Tvůj nápad s návody pro různé české hostingy je super: článek jsem četl a je vidět, že sis dal práci, aby článek pomohl snad všem :).
Ahoj Pepo,
děkuji za super článek. Musím ti dát za pravdu, že u Wedosu je to hotovo téměř ihned. Stačilo napsat na zákaznické centrum přes kontaktní formulář, za pár minut přišel email ať si aktivuji příplatkovou službu „HTTPS na doméně SNI“ (10 Kč bez DPH/měsíc) a zašlu všechny domény (subdomény, aliasy,…) související se zvoleným hostingem, kde chci HTTPS. Za cca půl hodinky nový email, že vše je připraveno a do hodinky můžu přepsat .htaccess. To vše v sobotu a v době oběda. :)
Ahoj Milane,
jsem rád, pokud článek pomohl :). Sám jsem byl mile překvapen, jak jsou některé hostingy na převod na HTTPS skvěle připravené a otázka přechodu je často jen formálním úkonem. Horší je to pak s následnými úpravami webu, ale to už je jiný příběh :).
Ahoj Pepo,
díky za výborný článek a postup, jak nastavit HTTPS.
Dragane,
děkuji, jsem rád, že se článek líbí :).
Díky Pepo, chystal jsem se na to delší dobu a tvůj článek jsem si schoval na potom a povedlo se napoprvé ;-)
Tome,
to jsem rád. Sám se zrovna taky chystám na převod některých svých webů, tak sám svůj vlastní návod taky využiju :D.
Podle mě nejjednodušší varianta je použít plugin Really Simple SSL a vůbec se nebabrat s nějakou změnou htaccess, adresy webu, adres v databázi atd. Zatím otestováno na 4 webech včetně WooCommerce e-shopu a všude prošlo hladce. Záleží samozřejmě i na hostingu, pokud mají něco blbě nastavené, tak je to Mordor.
Ruční změna .htaccess není až tak univerzální a blbovzdorná, protože ruční přesměrování se může porvat s nějakým přesměrováním co dělají pluginy pomocí hlaviček a pak může nastat cyklické přesměrování nebo bílá smrt. Řešil jsem u několik zakázek a pokaždé je to výborná zábava.
Zbyňku,
díky za doporučení na plugin. Doposud jsem jej neznal, tak určitě vyzkouším :).
Zdá se mi to nebo ten certifikát už není zdarma? A nemohu tam najít, zda to podporuje Forpsi na webhosting
Radko,
Lets Encrypt je stále zdarma a i u Forpsi jej ke svým službám nabízejí. Viz: https://www.forpsi.com/ssl/.
Ahoj, díky za článek, pomohl! Marně jsem zjišťoval, jak v google analytics přejít z http na https a vůbec jsem netušil, jak jednoduché to je :-)