HTTPs a pruda s přechodem na něj

Přejít na https jsem chtěl už dávno. Pro velkého bratra (Google.com) je to jeden ze signálů pro SEO pozice… ale až díky push notifikacím jsem rozhodl. Chci push notifikace testovat na sobě.

Celkově jsem čekal mnohem větší problémy: Výpadek serveru, vytrhané vlasy, probdělé noci a případný rozvod s mojí ženou 🙂 . Nakonec to bylo rychlé a bezbolestné. V tomto článku popíšu polopatě, co je potřeba nastavit, aby vás vyhledávače přehodily na nové https bez problémů.

UPDATE 18.2.: Přidávám popis, jak jsem obešel přesměrování formuláře z https na http

1. Dá to váš webhosting?

Úplně ze všeho nejdříve musíte pochopit, že certifikát (který budete kupovat) se váže nejen ke konkrétní doméně, ale hlavně ke konkrétní IP adrese. Pro vás to znamená jediné, zeptat se vašeho poskytovatele nebo administrátora serveru, jestli je to možné.

Příklad u wedosu: Pokud máte vlastní “multihosting” na jednom hostingu (za 25 nebo 100 Kč/měsíc), tak to nemůžete udělat. Musíte mít jedinou doménu na samostatném webhostingu (zapomeňte na sdílený certifikát). Více zde: http://kb.wedos.com/cs/webhosting/https.html

Můj příklad: Jsem u c4.cz a doménu mám registrovanou jinde. Znamenalo to:

  1. Koupit si vlastní certifikát (viz. bod 2 v tomto článku)
  2. Poslat chlapům z c-čtyřky privátní klíč a certifikát
  3. Zaplatit 403,- Kč za vlastní IP adresu u c4.cz
  4. Počkat na přidělení této IP adresy a nastavení k mému hostingu

Celé to trvalo 12 hodin a to jen z důvodu čekání na přidělení IP adresy. Pokud u c4 máte doménu, udělají vše za vás, ale musíte si připlatit.

2. Koupit SSL certifikát

Nejdříve musíte koupit SSL certifikát pro doménu. Já si vybral SpaceSSL (více zde). Vybíral jsem mezi AlpiroSSL a RapidSSL. Cenově vyjde na 169,- Kč/rok a finanční záruka je 5.000USD.

Viz. srovnání s AlpiroSSL:

Srovnání SSL certifikátu

Certifikát jsem koupil a po zaplacení si uložil privátní klíč a certifikát do souborů. Ty jsem poslal borcům z C4.cz a čekal na potvrzení, že je vše nastaveno.

3. Přehození ve WordPressu

Jděte do Nastavení -> Obecné a změňte http na https. Nelekněte se: WordPress vás odhlásí.

Nastavení ve WordPressu

4. Změna souboru wp-config.php

Do souboru wp-config.php vložíte tento řádek kvůli přihlašování do administrace skrz https:

define('FORCE_SSL_ADMIN', true);

..více o tom najdete zde.

5. Nastavení přesměrování pro vyhledávače

Musíme teď říct vyhledávačům (Google, Seznam, Bing apod.), že máte https a VEŠKERÝ OBSAH se přesměrovává na totožné URL adresy s https (obrázky, stránky atd.). To znamená, že kdokoliv zadá adresu s http, bude přesměrován na https:

  • http://www.vasedomena.cz/jakakoliv-stranka -> https://www.vasedomena.cz/jakakoliv-stranka
  • http://www.vasedomena.cz/jakykoliv-obrazek.jpg -> https://www.vasedomena.cz/jakykoliv-obrazek.jpg
  • http://www.vasedomena.cz/jakykoliv-script.js -> https://www.vasedomena.cz/jakykoliv-script.js

Navíc se musí udělat přesměrování přes tzv. kód “301” (moved permanently) a ne přes 302! Více o SEO a přesměrování p5es 301 v článku na moz.com.

Bacha, tohle může ovlivnit zobrazování stránek, ale kdykoliv to můžete změnit nazpět. Do souboru .htaccess vložte úplně na začátek tento kód a nahrajte na zpět na FTP.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.danielnytra.cz/$1 [L,R=301]
</IfModule>

…nebudu podceňovat váš intelekt, ale pro jistotu: Změňte “danielnytra.cz” na vaši doménu. Sice bych nebyl proti (přesměrovávali byste veškerou návštěvnost ke mně, ale myslím si, že byste na to rychle přišli 🙂 ).

Informace: .htaccess najdete v kořenovém adresáři vašeho WordPressu (stejně, jako jste tam našli wp-config.php) a pokud jej nevidíte, je možné, že nemáte nastavené zobrazení skrytých souborů. Například v Total  Commanderu povolíte zobrazování skrytých souborů v menu zde:

Total Commander: Zobrazit skryté soubory v FTP

6. Zkontrolujte přesměrování 301

Na stránce http://www.redirect-checker.org si zkontrolujte správnost přesměrování:

Kontrola přesměrování 301

7. Změna všech url adres z “http” na “https”

Řešil jsem to radikální změnou všech adres url z “https://www.danielnytra.cz” na “https://www.danielnytra.cz“. Vše proběhlo perfektně. Pomůže vám plugin “Velvet Blues Update URLs” (zde je na něj odkaz), který projde komplet celý WordPress a změní potřebné adresy.

Před spuštěním hromadné změny jsem udělal toto nastavení:

Změna url adres v celém WordPressu

8. Kontrola https

Aby byly stránky opravdu šifrované (https), musíte mít i VEŠKERÝ OBSAH šifrovaný. Tzn. Obrázky, scripty z jiných služeb apod. Poznáte to podle toho, že v Google Chrome uvidíte hezký zelený zámek v adresním řádku:

Kontrola https: Google Chrome

..nebo např. ve Forefoxu je vidět šedý zámek při správném nastavení:

Kontrola https: Firefox

Všechno ostatní je špatně a musíte řešit jednotlivé části vašich stránek, které jsou ve vaší stránce.

9. Jak najdu, co je špatně

Pokud nevidíte zámek ve vašem adresním řádku, pravděpodobně to znamená, že v rámci webové stránky stahujete nezašifrovaný (a tudíž potencionálně nebezpečný) obsah. Může to být např. obrázek nebo script.

Existuje více možností, jak zjistíte, co to je:

  1. Podíváte se do kódu a hledáte “http://” – to nedoporučuji. Důvod je efektivní hledání: Můžete mít odkaz i ve vnořených odkazech (typicky v souboru CSS linkujete na Google Fonts přes http) a takto byste to našli po několikahodinovém ručním hledání. Takže toto není cesta!
  2. Kontrola více stránek (robotem): https://www.jitbit.com/sslcheck
  3. Kontrola přes Firefox jednotlivých médií (kliknutím na ikonku vykřičníku, který se zobrazí místo zámku v adresní řádce)

10. Problémy s https

Já jsem musel řešit několik problémových věcí:

  • Pozor na nastavení DNS serverů. Měla by být nastavena jak IPv4 (moje je 77.93.196.46 ), tak IPv6 (moje je 2a01:430:36:0:0:0:196:46)
  • Na některé části stránek neměl vliv změna url adres z http na https (bod č.7 v tomto manuálu). Byl to plugin Thrive Leads pro získávání nových emailových kontaktů (všechny obrázky bylo nutné opravit na https ručně)
  • V CSS souborech jsem odkazoval http na google fonty (ruční oprava)
  • Affilbox jsem musel zpátky změnit na (předtím jsem měl http://affiliate.danielnytra.cz)
  • Nastavení formulářů pro sběr kontaktu z http na https
  • Pokud si “neošéfujete” správně tlačítka pro sdílení, ztratíte jejich hodnoty (kromě LinkedIn). Mě o to zas tak nejde, tak to neřeším. Doporučuje se jinak používat og:url staré (http).

UPDATE 18.2.: Jak jsem obešel přesměrování https na https ve formuláři (data se posílají POST metodou):

Je potřeba vytvořit “proxy” soubor zde např.: https://www.danielnytra.cz/redirect/redirect.php, který formulář znovu vykreslí a přepošle pomocí javascriptu na http (v mém případě na http://mailing.danielnytra.cz).

Můj soubor vypadá takto:

<html><body>
<?php
 //print_r($_POST);
 if ($_GET["formId"]) { 
?>
<form action='http://mailing.danielnytra.cz/form/submit?formId=<? echo $_GET["formId"]; ?>' method='post' name='frm'>
<?
foreach ($_POST as $a => $b) {
 if ($a == "mauticform") {
 foreach ($_POST[$a] as $name_mautic => $value_mautic) 
 echo "<input type='hidden' name='mauticform[".htmlentities($name_mautic)."]' value='".htmlentities($value_mautic)."'>";
 } else {
 echo "<input type='hidden' name='".htmlentities($a)."' value='".htmlentities($b)."'>";
 }
}
?>
</form>
<script language="JavaScript">
document.frm.submit();
</script>
<?
 } else {
 echo "Chyba!";
 }
?>
</body></html>

11. Google Search Console a https

Vložte další dvě služby: “https://www.danielnytra.cz” a “https://danielnytra.cz”, přidejte do jedné z nich XML feed z vašich stránek. U mě to pak vypadá takto:

Google Webmaster Tools: Sitemap xml

a nastavit jednu z těchto domén jako prioritní (u mě s www):

Google Webmaster Tools: Nastavení webu

12. Google Analytics a https

Stačí se přihlásit do vašeho účtu a změnit ve správci “http” na “https”:

Google Analytics a https

a nezapomeňte to napojit na Google Search Console (kterou jste před chvíli změnil):

Googla Analytics a Google Search Console

Závěr

Co vy? Už jste šifrovaní? Vidíte nějakou změnu? Udělali jste správně přesměrování přes kód 301 (Moved permanently)? Napište níže do komentářů postřehy!

52 komentářů u „HTTPs a pruda s přechodem na něj“

  1. Ahoj.Chcel by som sa Ťa spýtať. O výhodách na prechod na https som počul už cca pol roka dozadu. Uvažoval som o tom, ale ako som sa pýtal..tak mi bolo povedané, že to ma význam len na weboch, kde sú objednávkové formuláre, eshopy atď, proste kde sa narába s €, osobnými informáciami. Tak neviem, myslíš, že to pomôže,že to má význam aj pre obyčajný affiliate web, kde nie sú objednávkové formuláre ani nič podobné?

    Odpovědět
    • Pokud už web běží delší dobu a SEO je minoritní kanál, tak bych to nedělal. Pokud ale děláte nový web, rovnou bych jej rozjel na https (a ne kvůli push notifikacím). DaN

      Odpovědět
  2. Díky za praktický návod. Co na to Seznam po přechodu? Osobně dost promýšlím, na kolik se vyplatí přecházet na https, zatím si nejsem úplně jistý, zda výhody převládají (mluvím o Seznamu). Dlouhodobě mi to samozřejmě smysl dává.

    Odpovědět
    • Sleduji to. Google je v pohodě (pozice se za krátkou dobu vylepšili o dost) u Seznamu je to podobně (spíše zlepšení). Počkám ještě týden a pak sem hodím update 🙂

      Odpovědět
  3. Bude přechod na HTTPS v nějakém časovém horizontu nezbytný, nebo bude klasický HTML separátně i nadále plně funkční?

    Odpovědět
    • Určitě bude plně funkční! Jen pokud Google řekne, že to je pozitivní signál pro řazení pozic ve vyhledávání… tak to něco znamená 🙂 Vše dlouhodobě sleduji.

      Odpovědět
  4. Není pravda, že pro ssl je potřeba vlastní IP. Tato podmínka platila před řekněme 5-6 lety, úd té doby se už bez problémů rozšířila technologie SNI, která toto řeší. Hosting C4 je jeden z nejhorších v CR, takže se nedivím, že tuto podmínku vyžadují, hadám, že ještě mají servery s PHP 4…. A Wedos, který se v některých ohledech celkem snaží, bohužel na podporu šifrování kašle. Doporučil bych Vám Blueboard hosting.

    Odpovědět
  5. Pro jednu doménu lze využít i bezplatný SSL certifikát (http://www.openssl.org/), ale neznám úroveň zabezpečení a je divné, že ho sami na webu nepoužívají.

    Jinak u wedosu by mělo jít zabezpečit více domén vlastním certifikátem na doméně (SNI). Podle diskuze pod článkem by tuto variantu měli poskytovat již od první poloviny roku 2015.

    Odpovědět
  6. Dobrý den,
    jaký je rozdíl, když budu mít vyhrazenou IP adresu nebo můj hosting (cesky-hosting.cz) nabízí využití sdílené IP adresy- konfigurace je řešena pomocí metody SNI?
    Děkuji.

    Odpovědět
  7. Daniel patrím k technicky schopnejším ľudom a presne ako ty som odkladal prechod na SSL hlavne kvôli tomu, aby som na niečo nezabudol, aby mi to nerozbilo wordpress, rewrite rules, SEO… Proste dlhý deň pri počítači 🙂 Strašne dobre si to zhrnul a popísal si všetko čo ma zaujíma, fakt kvalitný článok s užitnou hodnotou, pridávam do RSS a teším sa na viacej článkov tohto charakteru. Ja pravdepodobne pôjdem do EV-SSL, to sú tie s tým zeleným prúžkom. Commodo ho má na prvý rok za 900Kč, čo mi príde v pohode, ďalší rok je to tuším 3000, tak si potom ešte rozmyslím.

    Druhá vec čo ma baví je “lets encrypt” teda SSL zdarma, lenže keď už človek kupuje IP adresu tak potom tých pár stoviek za cert nie je tak strašných.

    Odpovědět
    • Díky moc…hodně si toho vážím. Dá se už dělat SSL i bez IP adresy (jak jsem byl poučený): “HTTPS na doméně (SNI)”. Wedos to má za 10 Kč/měsíc.

      Zelený proužek je super a taky jsem o něm přemýšlel.. ale každý měsíc dát 3000,- mě přijde zbytečné.

      Odpovědět
  8. Len doplním, jedná sa o čiastku 2690Kč/rok, nie mesiac. Ale prvý rok je za 800Kč. Tento rok plánujem otestovať SSL a jeho vplyvy na rýchlosť/SEO a konverzie u pár webov, ak sa to ukáže dobré, tak o rok to spravím plošne pre klientov aj svoje weby.

    Odpovědět
  9. Ahoj já přecházel včera na https … https://www.uxbeat.com/ mám to na BlueHost.com a tam chtějí taky vlastní IP, ale dávají jí v základu tak jsem to neřešil. Jen jsem nějak nepřišel na to jak to přehodit v Search Console tak jsem to tam přidal jako nový web snad to nebude Google vadit, že to tam je 2x.

    Odpovědět
  10. Doporučuji přejít na hosting ebola.cz – za SNI se tam nic neplatí s celým přechodem na SSL mi pomohli, s využitím pluginu Really Simple SSL to byla záležitost cca 5 minut, doporučuji, ušetříte si spoustu času a nervů.
    Jinak největší problém byl se získáním certifikátu, pokud máte email u seznamu, tak pozor, email s certifikátem k Vám bohužel nedorazí – zkoušeno na 2 různých certifikátech – přes jejich spam filtr prostě nic neprošlo. Je pak vhodnější volit ověření přes web než email.

    Odpovědět
  11. Ufff! Dnes jsem přehodil svůj web na https podle tohoto návodu. Návod je napsaný výborně, akorát jsem narazil na jednu věc, se kterou jsem se hodně zapotil – nedávno jsem zkusil web hodit na CDN službu CloudFlare. Takže než jsem zjistil, že musím udělat nastavení i tam (Crypto > SSL > Full strict), tak mi web nefungoval (“Příliš mnoho přesměrování”). Ještě mi nefunguje redirect http na https (bod 5), to budu řešit zítra. Každopádně díky moc!

    Odpovědět
  12. Děkuji za pěkný návod, využil jsem již na několika menších a jednom větším webu. U WP jsem postupoval skoro stejně (ač jsem musel udělat jinou úpravu .htacces) a u custom CMS to bylo ještě trochu jinak, vy jste mě ale solidně nasměroval. Děkuji.

    Odpovědět
  13. Zdravím, všechno zatím super!
    Jen bych se rád zeptal jak na změnu url adres obrázků? Jsou na pevno v administraci a nemám možnost je přepsat….
    Pokud je na to nějaký trik prosím o radu 🙂

    Odpovědět
  14. Zdravím, Dane. Na kontrolu přesměrování není dostačující udělat test jedné nebo více stránek v Redirect Checkeru. U webu do 500 URL lze zdarma využít Screaming Frog, kam se nahraje seznam původních URL, SF je projde v módu List, označí typ redirectu a pak lze pomocí funkce Redirect Chains zjistit, kam přesně přesměrování vede a jak je dlouhé. Pokud byste chtěl článek rozšířit, rád tuto část napíšu a pošlu (mail na mě máte v komentáři)

    Odpovědět
  15. Dobrý den, mám začátečnickou otázku. Kde přesně se má define řádek umístit? Bohužel po změně configu se mi nedaří se přihlásit do administrace wp.
    Mám to hned za php:
    <?php define('FORCE_SSL_ADMIN', true);

    Odpovědět
  16. Děkuji za přínosný článek. Mám doménu i webhosting u ONEbit, který SSL nabízí dokonce zdarma, takže jsem o tom už hodně uvažoval 🙂 Nicméně jsem byl známým varován, že můžu ztratit pozici u vyhledávačů.
    Máte tedy s přechodem jen pozitivní zkušenosti a došlo pouze ke zlepšení? A pak se chci zeptat, jestli se u Vás nevyskytly nějaké problémy s nefunkčními pluginy ve WordPressu. Jako fotograf se trochu bojím možných problémů s webem před blížící se svatební sezónou.
    Ještě jednou díky za inspirativní článek, nasadil jste mi brouka do hlavy 🙂

    Odpovědět
    • Dobrý den, Honzo,
      když jsem se na to ptal kolegů, kteří se specializují na SEO, tak jsem dostal 50/50 informace. Jedni řekli, že to má vliv a druzí, že ne 🙁 Vzhledem k tomu, že jsem u svých klientů zároveň řešil více věcí (rychlost načítání stránek, CDN apod.), tak to vždy dopadlo perfektně a naopak si pomohli v pozicích. Takže můj osobní názor: Udělejte to a zároveň s tím vylepšete váš web: https://www.danielnytra.cz/kontroly-technikalii-vaseho-webu/

      Odpovědět
  17. Dobrý den,
    píši ještě jednou, teď už po úspěšném nasazení SSL 🙂 Rozhodl jsem se pro kompletní předělání webu na novou verzi a přitom jsem rovnou nasadil i SSL. Hodně mi pomohl Váš tip na plugin Velvet Blues Update URLs, protože jsem novou verzi neodlaďoval v ostrém provozu, ale schovanou v doména/podadresář. Po přesunu do ostré verze (z podadresáře na doménu janliska.eu) mi pak přestaly ve fotogaleriích fungovat všechny fotky i jiná média. Využil jsem tohoto pluginu a rovnou vše opravil na verzi s https:// a vše funguje naprosto perfektně 🙂

    Svůj druhý web jsem už také převedl na SSL certifikát a u obou jsem využil pluginu Really Simple SSL, který hodně věcí usnadnil a určitě jej doporučuji. Ještě jsem trochu Googlil o dopadech přechodu na SEO a našel jsem převážně pozitivní ohlasy.

    Ještě jednou díky za tipy i povzbuzení k přechodu na SSL, opravdu moc mi to pomohlo! 😉

    Odpovědět
  18. Dobrý den, Dane, myslíte, že vadí vícenásobné přesměrování?

    Tuším, že to vadí. Díky moc za odpověď!

    Odpovědět
  19. Ahoj Dane,

    připravil jsem si WordPress podle tvého návodu.. stránky momentálně ještě kódujeme. nápis “zabezpečeno” je hezky zobrazeno v administraci i na stránkách, když jsou v under construction.. ale v momentě, když je vypnu z režimu ladění nebo se na ně dívám
    přihlášený, tak už nevidím zeleně “Zabezpečeno” a vlastně ani například v Mozille.. Nevím co s tím. Nesetkal si se s takovým problémem?

    Díky moc za pomoc.

    Odpovědět

Napsat komentář