Aktivace HTTPS krok za krokem

K čemu je vlastně HTTPS a SSL certifikát a jak mě ochrání?

Lidsky řečeno SSL certifikát, jeho klíč a certifikační autorita, jsou prostředky, které jednak zamezí napadení stránky, a navíc aktivita mezi vaším zařízením a serverem zůstane jen mezi vámi (komunikace je tzv. „šifrovaná“). Je jasné, že takové nastavení mají rádi i vyhledávače.

Data odeslaná pomocí protokolu HTTPS jsou zabezpečená prostřednictvím protokolu TLS (Transport Layer Security), který poskytuje tři hlavní vrstvy ochrany:

  • Šifrování: Šifruje přenesená data, aby byla chráněná před odposlechem. To znamená, že když uživatel prohlíží webové stránky, nikdo nemůže „odposlouchávat“ jeho konverzaci, sledovat aktivitu na stránkách ani ukrást jeho údaje.
  • Integritu dat: Data během přenosu nelze pozměnit ani poškodit (ať záměrně, nebo jinak), aniž by to někdo nezjistil.
  • Ověření: Potvrzuje, že uživatelé komunikují s požadovanými webovými stránkami. Poskytuje ochranu proti útokům typu man-in-the-middle a posiluje důvěru uživatelů, což firmám přináší další výhody.

V dnešním článku se dozvíte, co to vůbec SSL je a jak vyřešit jeho aktivaci na klasické doméně a na WordPressu. Tedy jak vyřešit zabezpečení webu pomocí HTTPS, ve chvíli, kdy máte nainstalovaný web a zároveň vystavený Let’s Encrypt certifikát u vašeho provozovatele hostingu.

Bezpečnost hraje prim, řešte ji jako první

SSL je jedním z nejdůležitějších aspektů, které je dobré vyřešit hned na začátku. Pokud využíváte WordPress je nejlepší to vyřešit v úvodním nastavení webu po instalaci.

Zda je SSL aktivní poznáte laicky tak, že v adresním řádku uvidíte úplně nalevo neutrální ikonku nastavení (která nahradila původní zámeček), URL vašeho webu bude začínat “https://vašedoména.cz”, případně po rozkliknutí ikonky vás web informuje, že „Připojení je zabezpečené“.

Zaujalo vás to? Mrkněte na více článků na téma SSL.

Pokud koupíte doménu u nás, SSL se většinou automaticky aktivuje bez jakéhokoliv vašeho zásahu. Občas se však stane, že automatická aktivace se nepropíše. Pak je tedy nutné aktivovat certifikát ručně.

Nejprve je potřeba:

  1. Zažádat o vystavení SSL certifikátu u poskytovatele hostingu.
  2. Následně certifikát na webu aktivovat. A my si právě ukážeme, jak na to.

Známý a velmi populární certifikát „Let’s Encrypt“ je zdarma. Váš Hosting ale podporuje i klasické certifikáty.

Podpora Let’s Encrypt wildcard certifikátů

S červencovým releasem VPS Centra (2.56) jde aktivovat i Wildcard certifikát. Wildcard je další z druhů SSL Let’s Encrypt certifikátů. Obvykle bývá placený a oproti klasickému Let’s Encrypt umí o trochu víc: 

  • Například zvládá automatickou aktivaci SSL u všech vašich subdomén naráz
  • Není zapotřebí aktivovat SSL až po změně v DNS.
  • Nemusíte ho znovu vystavovat nebo měnit, když přidáte další subdoménu.
  • Lze si jej na server připravit dopředu.

V nové aktualizaci máte tři možnosti:

  1. Buď si necháte klasický LE certifikát vystavit pro každou doménu zvlášť.
  2. Nebo Wildcard certifikát pro celou doménu či seznam všech subdomén.
  3. Nebo půjdete cestou vlastního řešení, ale s tím, že takový certifikát projde nejprve naší kontrolou, abychom se vyhnuli komplikacím během aktivace.

Jak zažádat o certifikát pro hosting?

Vystavení certifikátu od Let’s Encrypt se děje zcela automaticky na pozadí. Vůbec o tom nevíte.

U klasických certifikačních autorit probíhá nejprve:

  1. Generování tzv. CSR žádosti – to zajistíme my.
  2. Dále probíhá ověření – nejčastěji přes e-mail „admin@vase-domena.tld“. Po vydání certifikátu zajišťujeme i jeho instalaci.
  3. O jeho prodloužení se stará náš systém sám.

V Zákaznickém Centru klikněte na Domény>Detail domény>Https certifikáty.

https certifikát

Jak aktivovat https na WordPressu

Pokud na svém webhostingu máte WordPress a certifikát se neaktivuje automaticky viz. screen výše, je potřeba na WordPressu provést pár nezbytných kroků:

  1. Certifikát můžete aktivovat ručně pomocí FTP přímo v souboru .htaccess v adresáři webu.
  2. Pomocí pluginu.

My si popíšeme „náročnější“ ruční aktivaci, pokud chcete mrknout na více informací o aktivaci pluginem a dalším nastavení pro WordPress, mrkněte na náš návod pro začátečníky na WordPressu.

Ruční aktivace ve WordPressu

1.) V administraci webu jděte do Nastavení>Obecné, kde nejprve u “Instalace WordPressu” a u “Úvodní stránky webu” přepište URL z “http” na “https”.

Následně v Trvalé odkazy přepněte na Název příspěvku. V tuto chvíli jste si v adresáři webu zpřístupnili soubor .htaccess, který se bude hodit v následujícím kroku pro přesměrování.

2.) Teď je zapotřebí ještě vyřadit starou nezabezpečenou adresu (HTTP), respektive ji přesměrovat na novou https://. To lze udělat buďto pomocí souboru .htaccess nebo jako vše ve WordPressu, pluginem. Dobré zkušenosti máme s pluginem WP Force SSL nebo Really Simple SSL. Oba jdou stáhnout z oficiálního repozitáře WP.

Jak na ruční aktivaci pomocí souboru .htaccess popisujeme také v našem seriálu pro začátečníky.

Instalace pluginem

Po instalaci a aktivaci pluginu WP Force SSL je už spuštěné automatické přesměrování na HTTPS. Pokud tomu nic nebrání, doporučujeme zapnout i HSTS. Na toto ovšem pozor je zde poměrně dost faktorů, které je dobré prověřit před samotnou aktivací HSTS.

Kontrola před aktivací HSTS

Zapínat HSTS není nezbytné, ale pro ty kteří této možnosti chtějí využít doporučujeme projít tuto sekci.

HSTS si šifrovanou komunikaci jednoduše vynutí. Přidá do hlavičky webu informaci pro prohlížeč, že tento web komunikuje výhradně skrze https://.

U pluginu Really Simple SSL stačí certifikát pouze aktivovat v základním nastavení pluginu:

Před aktivací doporučujeme prověřit:

  1. Podporu serveru a prohlížeče: Ujistěte se, že prohlížeč, který používáte, podporuje HSTS. Starší verze prohlížečů mohou mít omezenou nebo žádnou podporu pro HSTS.
  2. Správnou konfiguraci HSTS: Zkontrolujte, že konfigurace HSTS je správně nastavená v souboru .htaccess nebo v konfiguračním souboru serveru. Při konfiguraci uveďte správné hlavičky, jako je „max-age“ (doba platnosti HSTS záznamu), „includeSubDomains“ (zahrnutí subdomén), a „preload“ (přednačítání HSTS do seznamu veřejně důvěryhodných HSTS stránek).
    • max-age: Tento atribut určuje dobu platnosti HSTS záznamu v sekundách. Je to klíčový parametr, který informuje prohlížeče, jak dlouho si mají pamatovat, že se má daná stránka načítat pouze pomocí HTTPS. Důležité je vybrat rozumnou hodnotu. Obvykle se doporučuje minimálně 1 rok (např. 31 536 000 sekund), aby byla zajištěna dlouhodobá ochrana.
    • includeSubDomains: Tento atribut rozšiřuje HSTS na všechny subdomény hlavní domény. To znamená, že pokud je hlavní doména chráněná pomocí HSTS, tato ochrana bude aplikována i na všechny subdomény.
    • preload: Možnost „preload“ umožňuje před-načtení webu do seznamu veřejně důvěryhodných HSTS stránek. To znamená, že prohlížeče mají interní seznam webových stránek, které mají HSTS před-načtený, takže při prvním připojení na web nemusí dělat HTTP požadavek a mohou okamžitě použít HTTPS.
    • Pro přidání stránky do seznamu HSTS preload, musíš požádat o zahrnutí webu na preloadovou stránku v souladu s jejich pokyny. Zahrnutí do preloadu vyžaduje dlouhodobou závaznost a přesné dodržování standardů.
  3. Zálohu a obnovu: Vytvořte zálohu webového serveru nebo konfigurace před aktivací HSTS. Pokud dojde k nějaké chybě nebo problému, můžete se vrátit k předchozí funkční verzi.
  4. Expiraci certifikátu: Ujistěte se, že SSL/TLS certifikát pro web má platnost ještě delší, než je doba platnosti HSTS. Pokud certifikát vyprší dříve než HSTS, mohou se vyskytnout problémy s přístupem na stránku.
  5. Testování HSTS: Použijte nástroje jako SecurityHeaders.com nebo online testery HSTS k ověření správné konfigurace HSTS na webu. Tyto nástroje vám pomohou identifikovat potenciální problémy.
  6. Komunikaci s uživateli: Pokud máte na svém webu aktivní uživatele, informujte je o plánované aktivaci HSTS a vysvětlete jim, co to pro ně znamená. Některé starší prohlížeče nebo zařízení mohou mít problémy s načtením webu, pokud nepodporují HSTS.
  7. Monitorování vývoje: Po aktivaci HSTS pečlivě monitorujte provoz na webu. Pokud dojde k nějakým neočekávaným problémům, můžete tak rychle reagovat pro vyřešení problému případně obnovit zálohu.

Jak zažádat o certifikát ve VPS Centru?

Pokud máte virtuální server (VPS), tak ve VPS Centru vyberte v levém boxu doménu, které se bude certifikát týkat, klikněte na nastavení a tam už máte možnost certifikát zapnout.

nastavení HTTPS certifikátu ve VPS centru

Kámen úrazu

V tuto chvíli se zdá, že SSL funguje. Pokud zadáte „https://www.domena.cz“, tak se nahoře objeví vytoužená ikonka indikující, že se jedná o šifrovanou komunikaci, čili SSL certifikát je aktivní. Ikonu nastavení lze v prohlížeči rozkliknout a podívat se na podrobnosti.

Jde ale o to, že návštěvníci nezadávají adresu v tomto doslovném tvaru. Vkládají adresy včetně „www“ či bez, anebo přichází z nějakého vyhledávače, kde je uvedené „http://www.domena.cz“ (tedy bez „s“ na konci).

Proto zajistěte, aby veškerá komunikace probíhala jen přes HTTPS. Jedním ze spolehlivých způsobů je právě přesměrování pomocí souboru .htaccess.

Dále dejte pozor na tzv. „mixed content„. Jak název napovídá, jde o obsah, na který se ze stránek odkazuje a zdroj obsahu není na verzi s HTTPS. Pak je nutné projít znovu celý web a zkontrolovat to. Prostě žádný obrázek či video nesmí být zobrazované z webu, který nejede na HTTPS. Mrkněte pro jistotu do kódu. Pokud v něm nějaký takový obsah máte, certifikát tam nebude fungovat. Což nás znovu vrací k tomu, že je pro vás jednodušší vše přesměrovat, než hledat jehlu v kupce sena. 🙂

Mrkněte na veškerý souhrn o .htaccess.

Přesměrování HTTP na HTTPS

Nyní nastává okamžik, kdy využijete právě soubor .htaccess, který jste si v administraci WordPressu zpřístupnili.

Soubor .htaccess jinak naleznete v domovské složce vašeho webu. Připojte se tam pomocí FTP. Můžete využít našeho webového rozhraní. Pokud preferujete aplikaci, doporučujeme WinSCP.

Přihlaste se na FTP, přístupové údaje naleznete přímo ve vašem účtu v Zákaznickém Centru nebo v instalačním protokolu, který máte v e-mailové schránce. Případně si můžete vaše údaje změnit přímo v Zákaznickém Centru (detail domény>FTP). Pokud si náhodou heslo nepamatujete, můžete si zde rovnou vygenerovat heslo nové.

V souboru .htaccess pod RewriteEngine On napište:

RewriteEngine On
# all redirection HTTP -> HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

S „www“ nebo bez

Rozhodnutí, zda chcete, aby se v prohlížeči zobrazovalo www nebo ne, je na vás. Osobně preferujeme bez. Google totiž ve svém prohlížeči část www adresy schovává, stejně jako dnes schovává HTTP(S).

Doména s adresou začínající www

RewriteEngine On
# all redirection HTTP -> HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# redirection no www -> https://www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

Doména bez www

RewriteEngine On
# all redirection HTTP -> HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# redirection www. -> https://
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Přesměrování pomocí APACHE

Přesměrovat pomocí Apache můžete ve VPS Centru. Přihlaste se do VPS Centra > detail domény > Nastavení.

Stejných výsledků lze docílit konfigurací Apache nebo NGINX.

Díky virtual host můžeme na Apachi hostovat více domén na jednom serveru. Každá doména má svůj vlastní konfigurační soubor, který definuje nastavení, jako je kořenový adresář, bezpečnostní politiku, SSL certifikát, přesměrování a další nezbytnosti.

Pro SSL certifikát nainstalovaný na jedné doméně budete mít dva konfigurační soubory virtuálního hostitele. První je pro HTTP verzi stránky na portu 80 a druhý pro HTTPS verzi na portu 443.

V Linuxových distribucích založených na Red-Hat, jako je CentOS a Fedora, se konfigurační soubory virtuálních hostitelů ukládají do adresáře /etc/httpd/conf.d.

Zatímco v Debianu a jeho distribucích, jako je například Ubuntu, se soubory ukládají do adresáře /etc/apache2/sites-available.

Pokud chcete veškerý provoz přesměrovat z HTTP na HTTPS pomocí konfiguračního souboru virtuálního hostitele, můžete použít direktivu Redirect.

Přesměrování vypadá následovně:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    Redirect permanent / [7](https://example.com/)
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    Protocols h2 http/1.1
    # SSL Configuration
    # Other Apache Configuration
</VirtualHost>
  • VirtualHost *:80 – Apache server naslouchá příchozím spojením na portu 80 (HTTP) pro zadanou doménu.
  • ServerName example.com – Nastavuje název domény, který se používá pro identifikaci virtuálního hostitele.
  • ServerAlias www.example.com – Nastavuje alternativní názvy domény, které se používají pro identifikaci virtuálního hostitele.
  • Redirect permanent / 7 – Přesměruje všechny požadavky na HTTPS verzi domény. Permanent znamená, že se jedná o trvalé přesměrování.
  • VirtualHost *:443 – Apache server naslouchá příchozím spojením na portu 443 (HTTPS) pro zadanou doménu.
  • ServerName example.com – Nastavuje název domény, který se používá pro identifikaci virtuálního hostitele.
  • ServerAlias www.example.com – Nastavuje alternativní názvy domény, které se používají pro identifikaci virtuálního hostitele.
  • Protocols h2 http/1.1 – Nastavuje protokoly, které se používají pro komunikaci s klienty. „h2“ znamená HTTP/2, který je rychlejší a bezpečnější než HTTP/1.1.
  • SSL Configuration – Zde nastavíte cestu k vašemu SSL certifikátu a klíči a další SSL parametry.
  • Other Apache Configuration – Zde nastavíte kořenový adresář, přístupová pravidla, logování a další parametry.

Přesměrování pomocí NGINX

Na NGINX máme připravené přesměrování v konfiguračním souboru v našem VPS Centru. Stačí v tomto řádku vymazat křížek (#).

Následná kontrola

Zkontrolovat, jestli se stránky přesměrovávají správně, můžete pomocí online nástroje na stránkách httpstatus.io.

Pomohl Vám tento článek?

Podobné články