Jak zavést HTTPS krok za krokem


K čemu je vlastně HTTPS a SSL certifikát?

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 šifrovaná).  Je jasné, že takové nastavení mají rádi i vyhledávače.

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

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

Než se ale pustíme do práce, je třeba nejprve certifikát aktivovat.

Jak aktivovat certifikát pro hosting?

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

https certifikát

O jeho prodloužení se stará náš systém sám.

Jak aktivovat certifikát ve VPS centru?

Pokud máte 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.

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.

Kámen úrazu

V tuto chvíli SSL funguje. Pokud dáte https://www.domena.cz tak se nahoře objeví vytoužený zámeček indikující, že se jedná o šifrovanou komunikaci čili je SSL certifikát aktivní. Zámeček v prohlížeči lze rozkliknout a podívat se na podrobnosti.

Jde ale o to, že návštěvníci nezadávají adresu v tomto tvaru. Vkládají adresy včetně www či bez nebo přichází z nějakého vyhledávače, kde je uvedeno http://www.domena.cz. Je tedy nutné zajistit, aby veškerá komunikace probíhala přes HTTPS a jedním ze spolehlivých způsobů je právě přesměrování pomocí .htaccess.

Další věcí, na kterou je třeba dávat pozor je tzv. Mixed content. Jan název napovídá, bude se jednat o obsah na který se ze stránek odkazujete a zdroj obsahu není na https. Pak je nutné projít znovu celý web a zkontrolovat to. Prostě žádný obrázek či video nesmí být zobrazováno z webu, který nejede na https. Pokud v kódu nějaký takový obsah máte, certifikát nebude fungovat ani zde.

Souhrn informací o .htaccess naleznete zde

Přesměrování HTTP na HTTPS

Soubor .htaccess 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.

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ě preferuji bez. Google totiž ve svém prohlížeči bude brzy www schovávat 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

Stejných výsledků lze docílit i konfigurací Apache nebo NGINX. Pokud používáte Apache, stačí vám upravit a spustit následující konfiguraci. Za ManagedDomain stačí napsat všechny tvary domén a server se už o vše postará sám.

ManagedDomain domena.cz www.domena.cz 

<VirtualHost *:443>
ServerName www.domena.cz
ServerAlias domena.cz
Protocols h2 http/1.1
SSLEngine on
...
</VirtualHost>

MDCertificateAgreement https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf
ServerAdmin admin@domena.cz

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čí vymazat křížek v tomto řádku.

Kontrola

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