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 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

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.

Potřebujete-li  s přechodem na HTTPS pomoci, ozvěte se mi na info@sevciktomas.cz nebo do komentářů níže. Rád pomůžu, popř. celý proces zajistím.

Užili jste si článek? Pokud ano, budu rád za sdílení.

Autor: Tomáš Ševčík

Jsem vášnivý fotograf, webový vývojář/designer a muzikant v jedné duši. Tvořím responzivní weby založené na nejnovějších technologiích a trendech a občas o tom i něco napíšu. Více o mně 

A co vaše názory?

  1. Jan Eder 14. srpna 2018

    Dobrý den Tomáši,
    děkuji moc za tento návod. Chtěl bych Vás poprosit o radu. Web klarapomaha.cz mi běží na Wedosu, kde jsem si aktivoval https s certifikatem Lets Encrypt. Pak jsem postupoval podle vaseho navodu a pri nastaveni bodu 2 jsem se uz nedostal zpatky do administrace a nejak mi to cele nefunguje. Nevite, jak bych mohl zase upravit to nastaveni v Bodu 2, kdyz se ted nemuzu vubec prihlasit? Moc diky za kazdou radu. Trochu se mi z toho rosi celo. Honza

  2. Michal Glaser 29. dubna 2019

    Dobrý den,
    mám prosbu, nechal sem si podle kroku 1 vystavit certifikát od webhostinu a podle kroku 2 jsem změnil nastavení hlavní adresy webu… od té chvíle se nemohu dostat na administraci webu… poradíte mi, v kterém souboru php je to uloženo, abych to mohl vrátit zpět? Moc děkuji.

    • Tomáš Ševčík 29. dubna 2019

      Michale, toto nastavení nalezente v databázi, v tabulce wp_options. Těžko ale říct, proč se vám nedaří dostat do administarce, chtělo by to mrknout do logu na serveru, co je tam špatně.

  3. Karla 26. ledna

    Dobrý den Tomáši, děkuji za postup. Mám vše převedeno na https, ale u stránek s fotkami mi Chrome stále píše, že spojení s tímto webem není zcela zabezpečené. Dále je uvedeno, že útočníci mohou vidět obrázky…Poradíte mi, kde můžu mít chybu v nastavení a jak ji odstranit? Děkuji a přeji hezký den.

    • Tomáš Ševčík 29. ledna

      Hezký den, Karlo. Pravděpodobně ty obrázky nemají v odkazech https. Mrkněte na 5. bod tohoto návodu. Pokud byste měla stále problém, ozvěte se na info@sevciktomas.cz a mrkneme na to. Tom.

  4. Martina 30. června

    Krásný den :), chci vás poprosit o radu. Https mám už nastavené, ale když otevřu úvodní stránku, tak tam ten zámeček nemám. Na všech ostatních stránkách však ano. Ale když se z nějaké jiné stránky vrátím na úvodní, tak už tam zámeček je taky. Můžete mi prosím poradit, kde asi mám chybu, když se úvodní stránka otevře jako první, že tam zámeček není?
    Děkuji moc za odpověď

    • Tomáš Ševčík 1. července

      Hezký den, Marti. Vypadá to, že tam nemáte nastavené přesměrování a ten první vstup na úvodní stránce máte s „http“ a ne s „https“. Hoďte sem link, mrknu se na to. Tom.

  5. Martina 1. července

    Děkuji za odpověď :). Na těch stránkách zrovna dělám a nejsou ještě hotové. Nerada bych to tu zveřejňovala, můžu vám poslat odkaz na email?

    • Tomáš Ševčík 3. července

      Jasné, pošlete, mrkneme na to. :)
      Tom.

  6. Jakub dnes, 10:15

    Ahoj, mám menší problém. Při změn http na https byl můj web shledán nezabezpečeným a tedy nefunkčním. Jde se dostat nějak do administrace worpresu a dát tam zpět http?

Napište svůj názor