Checklist: Přechod na HTTPS

Lukáš Havlík   11. 9. 2017


Už od začátku tohoto roku začaly prohlížeče při zadávání dat varovat před weby, které ještě nepřešly na HTTPS. Pokud na takovém webu chcete vyplnit např. login nebo zadat něco do vyhledávání, vyskočí vám upozornění, že vkládání dat není bezpečné. A to pochopitelně řadu lidí od použití vašeho webu či e-shopu odradí.

Většina českých e-shopů již na HTTPS běží, u velkých provozovatelů je to ve většině případů standard už delší dobu. Přesto stále najdeme online prodejce, kteří se změně brání a/nebo na ni zatím neměli kapacitu.

Přechod na HTTPS není obtížný, je při něm ale třeba myslet na mnoho věcí. Rozhodli jsme se proto zveřejnit náš checklist vycházející z doporučeného postupu Jaroslava Hlavinky. Doplnili jsme jej o další tipy, na které jsme v praxi narazili. Pokud nebude něco jasné, ozvěte se v komentářích.

Před přechodem

Nejdříve zprovozníme certifikát všude, kde je potřeba, a ozkoušíme, že vše funguje. Stále ještě se nic neděje, protože web bez HTTPS běží a provoz nic nenarušuje.

  1. Pořídit certifikát. Můžeme zvolit buď komerční certifikační autoritu, nebo v dnešní době stále populárnější certifikáty zdarma; např. od Let’s Encrypt.
  2. Nainstalovat certifikát na server, aktivovat pro náš projekt.
  3. Pořídit a nainstalovat certifikát na CDN servery, pokud běží na našich doménách. Obecně HTTPS musí fungovat na všech subdoménách a externích zdrojích, ze kterých budete linkovat soubory - CSS, JS, obrázky atd.
  4. Ověřit, že je certifikát správně nainstalovaný; např. na SSL Labs. Dobré je ověřit i nástrojem poskytovaným vaší certifikační autoritou.
  5. Zkontrolovat v kódu projektu, že načítáme všechny externí závislosti přes HTTPS. Vyhnout se protocol relative URL pokud je to možné.
  6. Manuálně zkontrolovat, že vše funguje přes prohlížeč. Ideální je otestovat v Google Chrome s otevřenou developer konzolí. Ta nám rovnou vypisuje všechny externí zdroje, které načítáme bez HTTPS.
  7. Před přechodem zkontrolovat například pomocí nástrojů Screaming Frog, nebo Xenu’s Link Sleuth.

Přechod

Vše je zkontrolováno, vrhneme se na přechod.

  1. Přesměrovat všechny stránky webu na HTTPS 1:1 (viz 301).
    • Ověřit, že přesměrování funguje i na subdoménách webu.
  2. Přesměrovat 1:1 na HTTPS obrázky, JavaScripty, CSS, multimédia, PDF a další.
  3. Upravit všechny URL na webu tak, aby vedly na HTTPS stránky - buď absolutní URL s HTTPS nebo relativní URL. 
    • Upravit canonical URL, aby nevznikalo zacyklení.
    • Upravit tzv. hardcoded URL (např. v článcích, JavaScriptech, CSS souborech atd.)
    • Upravit hreflang URL.
    • Upravit URL v RSS. Upravit URL ve Facebook, Twitter, Instagram, LinkedIn, Pinterest, G+ a jiných interaktivních tlačítcích.
    • Zkontrolovat všechny měřící kódy, embed kódy apod.
    • Upravit URL v meta tagu OG:URL.
  4. Změnit umístění robots.txt na https.
  5. Změnit umístění souborů sitemap.xml na https a upravit odkaz na sitemapu v robots.txt.
    • V robots.txt upravit http na https všude, kde se dále vyskytuje.
    • Změnit URL v souborech sitemap.xml na https.
  6. Upravit URL XML feedů pro srovnávače, odběratele apod. U srovnávačů je zásadní, aby odkazy ve feedu byly upraveny na https.
  7. Stejně tak je potřeba v administraci platebních bran (jako PayU apod.) upravit URL u návratových a notifikačních adres, aby směřovaly na https.
  8. Zachovat původní tzv. řetězení přesměrování („redirect chain“).
  9. Přesměrovat URL s _escaped_fragment_= na jejich alternativy 1:1.

Po nasazení

  1. Zkontrolovat raději ještě jednou výše uvedené body, jestli vše proběhlo v pořádku.
  2. Vymazat a přegenerovat cache, aby za určitých okolností nedošlo k zacyklení.
  3. Informovat vyhledávače o změně. 
    • V Google Search Console je potřeba připojit novou verzi webu s HTTPS, a to jak bez www, tak s www. Poté je nutné zvolit, která verze je primární – pozor, to je možné pouze tehdy, kdy jsou zaregistrované a ověřené jak https, tak http verze webu. 
      • V Console je nutné ověřit vlastnictví webu – nejsnáze pomoci GA nebo GTM, složitěji pomoci připojení nasazení ověřovací značky na web.
      • Můžete napojit také novou sitemap.xml.
    • V Seznam webmaster tool je nastavení podobné.
  4. Použít v Google Seach Console funkci Načíst jako Google. Google projde a případně také vykreslí web, poté poslat zásadní části webu k indexaci. Pozor, indexaci zadané stránky a jejích podstránek lze poslat pouze 10x pro daný účet za určité období. Pokud budete převádět více webovek současně, je nutné rozmyslet, které jsou nejzásadnější.
  5. Přenastavit GA na HTTPS – v Property SettingsView Setting.
  6. Vložit Search Console do GA.
  7. Ověřit důležité stránky webu ve validátoru vyhledávače Seznam.
  8. Vložit 5 nejdůležitějších HTTPS URL webu do formuláře Seznamu.
  9. Změnit URL webu všude tam, kde se používá. 
    • PPC, bannerové a jiné kampaně 
      • U AdWords a Skliku je možné zvolit postup změny nejprve historicky horších reklam, pokud jich máte v setu 2 a více. Změnu dalších nechat na později, aby nedošlo k výpadku inzerce. U Facebooku nezapomenout, že změněná reklama ztrácí sociální interakce. Pokud se jedná o dílčí (například textové) úpravy, pak ke ztrátě nedojde. Změnu lze poté projet nástrojem na kontrolu reklam Ads.Care.
    • Odkazy na sociálních sítích
    • Affiliate odkazy
    • Odkazy na Firmy.cz a Moje firma v Googlu
    • XML feedy
    • Odkazy na XML feedy v reklamních platformách – AdWords, Facebook, Sklik, Heureka a všude jinde, kde se používají (zaměřit se zejména na srovnávače, které si nemusí poradit s redirectem a nedokážou tak feed bez problému stáhnout). Osvědčený postup pro AdWords je takový, že se do Google Merchants vloží nový feed, přičemž ten starý se nechá běžet, dokud se nový nenačte. Nesmí se pak zapomenout nastavit na novém feedu stejná pravidla, jaká byla na starém.
    • E-mailový podpis
    • URL v automatických e-mailech
  10. Zvážit sledování access.log webu kvůli případným chybovým hlášením.
  11. Kontrolovat Search Console, GA a další externí nástroje, jestli se někde nevyskytne problém.
  12. Zkontrolovat, jestli se konverze v GA nepřipisují zdrojům platebních bran. V takovém případě je možné využít Referral Exclusion List. Viz Admin > Tracking info.

Další tipy

  • Zvážit využití HSTS, které pomůže, aby prohlížeč na vašem webu vždy šel na HTTPS.
  • Zapnout secure cookies. Zkontrolovat a zapnout httponly cookies.
  • Pokud existuje soubor disavow, přenést jej i do nově zaregistrovaného webu v Search Console.
  • Přidat také podporu HTTP/2.
  • Zvážit nastavení meta referrer na unsafe-url kvůli analytice. Zvážit bezpečnostní důsledky.

IP adresy a SNI

Na většině hostingů je v dnešní době dostupné SNI, takže pro certifikát už zřejmě nebudete potřebovat vlastní IP adresu. Pokud ale potřebujete podporovat i velmi staré klienty (Windows XP a spol), bude vlastní IP nezbytná. S výběrem certifikátu vám může pomoci Kepiho článek.