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
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:
- Buď si necháte klasický LE certifikát vystavit pro každou doménu zvlášť.
- Nebo Wildcard certifikát pro celou doménu či seznam všech subdomén.
- 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.