HTTPS a WordPress – přechod krok za krokem

Tento článek (nebo jeho část) je převzat z externího zdroje. Je tedy slušností jej uvést včetně případného autora.

Přechod na HTTPS není žádná věda, přes to s tím má spousta webů stále problém. Nemluvě o těch, které HTTPS ještě nemají vůbec. Pokud pracujete s daty uživatelů a ještě nemáte SSL certifikát, tak budete dokonce ve výsledcích vyhledávání označeni jako nedůvěryhodní. Což určitě nechcete. 🙂 O výhodách a nevýhodách https toho bylo na internetu napsáno mraky, takže se zaměřím pouze na to, jak na něj bez problému na WordPressu přejít.

1. Získání SSL certifikátu

Než vůbec začnete s jakýmikoliv úpravami, zajistěte si platný SSL certifikát. Kontaktujte svého webhostera s dotazem na možnosti. Někteří (např. ONEbit.cz) vám nabídnou dokonce SSL zdarma.

2. Změna hlavní adresy webu

Máte-li certifikát, můžete přistoupit ke změně adresy webu. Tu změníte v administraci Nastavení -> Obecné.

Je třeba změnit http na https v položkách Instalace WordPressu (URL)Úvodní stránka webu (URL).

3. Aktualizace všech ostatních adres na webu

Předchozí krok změní URL v nastavení WordPressu, to se aplikuje všude tam, kde jsou použity relativní adresy. Tam, kde máte adresy absolutní (tedy http:// – v příspěvcích, widgetech, stránkách atd.) je třeba je upravit a přidat esko. Jsou dvě možnosti jak to provést:

  1. Ručně: Pokud máte pár stránek, není problém je projít a odkazy upravit. Stejně tak u widgetů a všude tam, kde jste kdy vkládali odkazy ručně.
  2. Pluginem (doporučuji): Pokud chcete tento proces zautomatizovat a mít jistotu, že nic nevynecháte, máte možnost využít některý z pluginů. Doporučuji Velvet Blues Update URLs nebo Search & Replace. Stačí zadat starou (s http) a novou (s https) adresu a plugin se o vše postará.

4. Trvalé přesměrování všech HTTP požadavků na HTTPS

V tuto chvíli máme vyřešeny adresy a web by nyní měl bez problému běžet na https. WordPress se ale bohužel (zatím) automaticky nepostará o přesměrování starých odkazů, takže z hlediska SEO budete mít na webu duplicitní stránky (verze s http a verze s https) a to není dobré. Potřebujeme všechny httppožadavky přesměrovat na https. Řešení je jednoduché – stačí vložit následující kód do souboru .htaccess.

# BEGIN FORCE REDIRECT TO HTTPS
RewriteEngine On
RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# END FORCE REDIRECT TO HTTPS

Pro správnou a 100% funkčnost je potřeba tento kód vložit úplně na začátek souboru, tedy ještě před # BEGIN WordPress.

5. Kontrola a odstranění smíšeného obsahu (mixed-content)

Velice častá chyba u webů s SSL certifikátem. Pokud vám web běží s HTTPS, ale zároveň načítá některé prvky (skripty, obrázky, styly, iframe atd.) bez zabezpečeného přenosu (bez https), bude je prohlížeč blokovat. Pokud jste prošli pečlivě všechny body výše, tak ze strany WordPressu a pluginů by tento problém nastat neměl. Často se ale stává, že je přímo v šabloně vložen odkaz „natvrdo“ a s protokolem http. Je potřeba všechny tyto odkazy najít a ručně upravit.

Pokud je vše v pořádku, tak v Chrome to poznáte například následovně:

V případě, že se na stránce nachází smíšený obsah, tak nebude obsažena informace o zabezpečeném připojení a https bude zašedlé.

Detaily lze nalézt v konzoli prohlížeče (F12). Chyba může vypadat například následovně:

Je potřeba zkontrolovat nejen hlavní stránku, ale také podstránky. Oprava problému pak záleží na samotné chybě v konzoli. Jak jsem zmínil výše, většinou se jedná o odkazy v šabloně a úprava není nijak komplikovaná. Vážnější problém může nastat v případě iframu, do kterého načítáte nezabezpečená data a zdroj s https načít nelze (cílový obsah nemá certifikát). Zde je potřeba problém řešit s poskytovatelem načítaného obsahu a vyžádat si šifrovanou verzi.

Pro automatickou detekci smíšeného obsahu doporučuji vyžít nástroj www.jitbit.com/sslcheck.

6. Aktualizace externích služeb

Pokud používáte různé externí služby, které jsou vázané na doménu, tak bude potřeba aktualizovat i je. U Google Analytics je to jednoduché – v nastavení služby stačí změnit protokol. U Search Console (Google Webmaster Tools) musíte ale web přidat celý znovu, systém bere http a https jako dva odlišné weby. U dalších služeb je to obdobné – hlavní je vše aktualizovat nebo minimálně zkontrolovat.