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.
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.
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)
.
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:
http
) a novou (s https
) adresu a plugin se o vše postará.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
[notification type=“alert-info“ close=“false“ ]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
.[/notification]
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.
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.
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
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.
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ě.
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.
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.
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ěď
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.
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?
Jasné, pošlete, mrkneme na to. :)
Tom.
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?
Ahoj, podařilo se mi naprosto to samé a jsem v konci… změníl jsem dvě adresy z HTTP na HTTPS a uložil. Přepis v wp-config.php pomohl dostanu se alespoň do administrace, ale na web ne. I když jsem adresu zadal dobře přesměrovává se mi to na hostingový server, jako stránka neexistuje. Ale nemohu pochopitelně editovat ta dvě políčka, když jsem to natvrdo změnil. A ať sebevíc zkouším v myPhpAdmin tak se nemohu dostat přes heslo. Už mi došli nápady jaký heslo to po mě chce. mysqli::real_connect(): (HY000/1045): Access denied for user ‚lordkokman’@’localhost‘ (using password: YES) Prosím jesli je nějaká rada jak se dostat do nějakého souboru a něco přepsat bylo by to moc super. Děkuji.
Ahoj, stal se mi ten samý problém. Podařilo se ti ho vyřešit, popř. jak?
Děkuji.
Děkuji Vám za kód k přestupu na HTTPS Tomáši, maká skvěle od první sekundy.
S přátelským pozdravem,
Martin
Dobrý den, přecházím na https na webu https://www.detskysvet.cz v menu (o nás, spolupráce, naše produkty) atd. se mi stále blokují ikonky a menu nelze prokliknout. Jak to napravit?
Dobrý den,
řeším to, co již někteří….po kroku 2, čili změny nastavení ve WordPressu na https se nemohu dostat do administrace webu. Hlásí to: Tento web není dostupný. Web xxxx.cz odmítl připojení.
Nepřišel jste už na to, jak to vyřešit? Děkuji
Hezký den Vando,
máte na serveru aktivní SSL certifikát? Ozvěte se mi případně do e-mailu info@sevciktomas.cz a mrkneme se na to.
Tom.
RYCHLÝ KONTAKT
info@sevciktomas.cz+420 733 383 868
STUDIO
Masarykovo náměstí 144Vizovice, 763 12
zobrazit na mapě
POSLEDNÍ ČLÁNKY Z BLOGU
Jsem plátce DPH.
Funkční Vždy aktivní
Předvolby
Statistiky
Marketing