Joomla

Jak zvládnout přechod na HTTPS v Joomle za několik minut?

O co se vlastně jedná? Zjednodušeně řečeno, protokol HTTPS zprostředkovává mezi vašimi návštěvníky a vaším webem šifrované spojení. Využijete ho zejména u e-shopů a výdělečných webů, kde vaši zákazníci zadávají údaje platebních karet nebo se přihlašují pomocí uživatelského jména a hesla do klientské sekce.

Na mou ryze filosofickou otázku, v čem vlastně spočívá smysl nucení blogerů a autorů neziskových webů k přechodu na nový protokol, mi však v diskusích nedokázali dostatečně odpovědět ani někteří populární SEO specialisté a marketéři.

Zbavte se výstražných hlášek a poklesu ve vyhledávání

Na těchto stránkách vás samozřejmě nenutím zadávat hesla ani čísla platebních karet. K převodu vlastního webu jsem se nakonec rozhodl spíše kvůli narůstající buzeraci ze strany Googlu a internetových prohlížečů, které označují weby běžící na HTTP protokolu jako potenciálně nebezpečné.

Samotný Google se však rozhodl zajít ještě dál, stránky s HTTP označovat jako nezabezpečené a také je znevýhodňovat ve výsledcích vyhledávání. A to je celkem pádný důvod pro správce jakéhokoliv webu, aby o přechodu na HTTPS začal uvažovat – nejlépe co možná nejrychleji.

Na následujících řádcích vám ukážu, jak převést blog nebo technicky méně náročný web s redakčním systémem Joomla! na HTTPS, nastavit okamžité přesměrování všech jeho adres na nový protokol a vyhnout se tak poklesu návštěvnosti.

Pokud uslyšíte poprvé v životě pojmy jako URL adresaCSS styl nebo JavaScript, doporučuji vám přenechat přechod vašich stránek na HTTPS zkušenějším harcovníkům

1.) Rozumný hosting vám nabídne aktualizované SSL zdarma

Pro přechod na HTTPS potřebujete nejprve získat takzvaný SSL certifikát, který identifikuje obě strany online spojení (server a klienta) a zajišťuje šifrovanou komunikaci. Většina tuzemských hostingových společností vám jej nabídne zdarma prostřednictvím certifikační autority Let’s Encrypt.

Bezplatný certifikát má sice platnost jen 90 dní, ale každý rozumný poskytovatel webhostingu vám zajistí jeho automatickou obnovu. U Endory, kde hostuji své stránky, jsem měl SSL certifikát vygenerovaný za pár minut po odeslání žádosti. Stejně byste měli pořídit u dalších populárních webhostingových firem – například u WEDOSuČeského Hostingu nebo Webhostingu C4.

Mějte na paměti, že bezplatný certifikát Let's Encrypt neposkytuje finanční záruku na bezpečnost transakcí. Není tedy úplně vhodný pro firmy, které spravují citlivá data a provádějí finanční operace online.

Žádost o vygenerování SSL certifikátu musíte obvykle odeslat z administrace webhostingu. Pokud používáte freehosting a za doménu ani hostování svých stránek neplatíte ani korunu, na bezplatné SSL můžete pravděpodobně rovnou zapomenout.

2.) Pojistěte si přepsání adres v .htaccessu 

S platným SSL certifikátem povedou vaše další kroky do kořenového adresáře webu (na FTP). Vnucení SSL a HTTPS redakčnímu systému Joomla!, které si ukážeme za chvíli, by mělo zajistit správné přesměrování všech stránek vašeho webu na nový protokol.

Jako volitelně povinná pojistka ale slouží zadání trvalého přepsání adres na HTTPS přímo vašemu serveru. Pravidla pro přepsání adres se zadávají do souboru .htaccess v kořenovém adresáři vašich stránek. 

Příklad editace souboru .htaccess a přepsání adresy na HTTPS
 Příklad editace souboru .htaccess a přepsání adresy na HTTPS

Na fórech koluje celá řada příkazů, které by měly obecně zajistit přepsání verze s HTTP na HTTPS. Použití nesprávného příkazu však může způsobit zacyklení přesměrování a pád veřejné části webu s chybou ERR_TOO_MANY_REDIRECTS. V mojí Joomle 3.9.1 fungoval bez problému pouze následující zápis: 

RewriteEngine On
RewriteCond %{HTTPS} OFF
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}>

Tento kód zkopírujte do vašeho souboru .htaccess nad všechna stávající pravidla, která nemažte ani nijak neupravujte. Pokud už ve svém .htaccessu máte aktivační příkaz RewriteEngine On, jeho zápis nezdvojujte a zkopírujte pouze dva následující řádky.

Pracujete-li s .htaccesem poprvé, možná budete muset RewriteEngine On takzvaně odkomentovat vymazáním mřížky na začátku příslušného řádku.

3.) Vnuťte své Joomle verzi s HTTPS a SSL certifikátem

V kořenovém adresáři stránek ještě pro jistotu otevřete soubor configuration.php a najděte řádek začínající public $live_site. Pokud nemá následující podobu, doplňte do něj svou doménu s HTTPS:  

public $live_site = 'https://vase-domena.cz';

Nyní se přihlaste do administrace Joomly a v menu Systém otevřete Globální nastavení a záložku Server.  

 Jak vnutit Joomle HTTPS a SSL certifikát pro celý web
 Vnucení HTTPS a SSL pro celý web v Joomle

4.) Změňte kanonické adresy na ty s HTTPS

Jestli jste doteď kanonické adresy na svém webu nepoužívali, nyní bych vám to srdečně doporučil. Varianty s HTTP a HTTPS se totiž chovají jako dvě samostatné verze stránek, což platí i pro každou jednotlivou adresu článku, položky menu nebo kategorie.

Měli byste proto říci vyhledávačům, že kanonickou (autoritativní) adresou pro každou stránku je nyní ta s HTTPS. V Joomle mi k tomuto účelu nejlépe posloužil volně dostupný plugin Aimy Canonical. V nastavení pluginu by mělo stačit nastavit volbu Protocol na https.

Tímto krokem by měl být samotný přechod na HTTPS za vámi. Kýženým výsledkem celé akce je zobrazení ikonky zámku vedle adresního řádku s URL adresou vašich stránek.

Správné nastavení HTTPS v Google Chromu
     Správné nastavení HTTPS v Google Chromu

Po jeho rozkliknutí by se vám měla zobrazit hláška Připojení je zabezpečeno, dále informace o vašem certifikátu a přehled používaných cookies (na obrázku). 

Pokud používáte komponentu JComments pro přidávání komentářů k článkům a vedle adresního řádku se vám zobrazuje sdělení, že načítáte některý obsah z nezabezpečených zdrojů, napište mi zprávu ze sekce Kontakt. Poradím vám, jak upravit jádro JComments a zbavit se HTTP adres ksichtíků z Gravataru.

5.) Zkontrolujte úspěšný přechod stránek na HTTPS

Mnohem více času vám zabere slovutné procházení krajiny po bitvě. Nyní musíte zkontrolovat, že celý přechod na HTTPS proběhl úspěšně. Vždy platí, že čím více prvků každého druhu zkontrolujete, tím větší je pravděpodobnost úspěchu.

  • Zkontrolujte, že všechny původní adresy vašich stránek s HTTP se automaticky přesměrují na HTTPs (zadejte ručně do prohlížeče co nejvíce adres jednotlivých stránek ve tvaru http://vasweb.cz/podstranka a sledujte, jestli automaticky přeskočí na verzi s HTTPS).
  • Prověřte, že všechny interní odkazy vašeho webu odkazují na verze s HTTPS – proklikejte co nejvíce kategorií, článků a dalších odkazovaných stránek webu, ukazujte na odkazy kurzorem myši a sledujte, jestli se v dolním stavovém řádku zobrazí nové adresy s HTTPS a současně jsou funkční.
  • Zkontrolujte správné přepsání URL adres obrázků, videí, souborů ke stažení, CSS stylů, Java Scriptů, RSS zdrojů a všeho, co váš ještě napadne (otevřete si je také v prohlížeči a zkontrolujte, že zobrazují správný obsah).

  • Pozor – některé URL adresy možná budete muset upravit ručně v šabloně – např. cesty k fontům z GoogleAPIs, odkazy v patičce, interní odkazy v článcích, CSS stylech, JavaScriptech a dalších součástech webu.

  • V souboru robots.txt, v kořenovém adresáři webu, změňte cestu k XML sitemapě (používáte-li ji na svých stránkách). Pokud vytváříte sitemapu poloautomaticky přes xml-sitemaps.com, vygenerujte ji znovu pro novou verzi webu s HTTPS a vložte na web. 

  • Měli byste také změnit adresu webu v používaných externích nástrojích. V nové Search Console budete muset přidat novou verzi jako novou službu, v Google Analytics stačí změnit protokol v sekci Správce -> Nastavení služby -> Výchozí adresa URL.

  • Je-li to možné, pokuste se změnit adresy vašich nejcennějších zpětných odkazů (směřujících na váš web) na verzi s HTTPS. Nové odkazy již směřujte na novou verzi.

6.) Závěrečný test odkazů, SSL a smíšeného obsahu

Pokud jste úspěšně prověřili všechny předchozí body, doporučuji vám ještě provést analýzu všech linků a cest na webu s pomocí nějakého šikovného kontrolora neplatných odkazů.

Já osobně používám vynikající volně dostupný prográmek Xenu's Link Sleuth, který pracuje opravdu důkladně. Steve Jobs by jeho funkčnost pravděpodobně okomentoval slovy It works like magic. :) 

  • V menu File zvolte možnost Check URL a nejprve zadejte adresu s HTTP. Xenu by vám měl zobrazit jen dvě adresy – URL hlavní stránky s HTTP a totéž s HTTPS – jako důkaz úspěšného přesměrování webu na HTTPS.
  • Poté vytvořte novou kontrolu a jako adresu zadejte novou verzi ve tvaru https://vasestranky.cz.
  • Jako první zkontrolujte, že všechny interní adresy začínají protokolem HTTPS. Ve vygenerovaném reportu pak věnujte pozornost zejména oddílům Broken links, tedy chybám číslo 40x. Případné problémy byste měli opravit, ať už k nim došlo nedokonalým přechodem na HTTPS, nebo prostě jen odkazujete na neexistující stránky.
  • Projdete-li zároveň testem Quallys SSL Labs s nejvyššími známkami (Grade A) a testem smíšeného obsahu JitBit, mělo by být všechno v pořádku.

Narazili jste na problém s přechodem Vaší Joomly na HTTPS? Napište mi do komentářů nebo prostřednictvím kontaktního formuláře. Článek budu průběžně aktualizovat na základě Vašich zkušeností a připomínek.


Poznámky:

Postup byl testován v redakčním systému Joomla!, na verzi 3.9.1, se zapnutými funkcemi Přátelské URL a Použít přepis URL v globálním nastavení.

Rychlé menu