HTTPS a WordPress – přechod krok za krokem
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)
a Ú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:
- 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ě.
- 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 (shttps
) 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 http
pož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
# 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.
Napsat komentář