Nejvýkonnější servery Nejvýkonnější servery
Dlouhodobý vítěz
ve srovnávacích testech výkonu

Nastavení přesměrování na zabezpečený protokol HTTPS

V minulém článku jsme si ukázali jak snadno si vystavit certifikát a následně jej nainstalovat pomocí pár kliků v Centru administrace. Dnešním úkolem bude si ukázat, jak přesměrujete svůj web na zabezpečený protokol HTTPS.

Rozdíl mezi HTTP a HTTPS

HTTP je základním protokolem určeným pro komunikaci mezi servery celosvětové sítě (WWW). Díky němu si ve vašem prohlížeči můžete zobrazovat webové stránky. Společně například s elektronickou poštou se HTTP velkou měrou zasloužil o rozmach internetu ve světě.

Nástupcem protokolu HTTP je HTTP/2, který pomocí SSL/TLS zabezpečuje přenos webových stránek a celkově všech dat mezi prohlížečem návštěvníka a webovým serverem. Hlavní výhody protokolu HTTP/2 jsou permanentní zabezpečení a vyšší rychlost. Díky technologické pokročilosti a binárnímu přenosu dat dokáže HTTP/2 mnohonásobně urychlit načítání webových stránek oproti svému předchůdci, který fungoval textově.

Zatím poslední novinkou na poli webových protokolů je verze HTTP/3, nicméně bude ještě nějaký čas trvat, než se bude plně nasazovat. Tento nově připravovaný standard je vlastně aplikací HTTP uvnitř transportního protokolu QUIC. Klíčovým atributem HTTP/3 by podle jeho tvůrců měla být především rychlost.

V případě HTTPS se jedná o nadstavbu protokolu HTTP, která slouží k šifrování spojení mezi dvěma stranami komunikace. Zajišťuje autentizaci, důvěrnost přenášených dat a jejich integritu. Jeho spolehlivost v zabezpečení se odvíjí od použité verze šifrovacího systému serveru a webového prohlížeče.

Postup pro Wordpress

Nejprve si ukážeme, jak na přesměrování ve stále oblíbenějším redakčním systému WordPress. K tomu nám skvěle poslouží plugin Really Simple SSL, umožňuje rychlé a jednoduché zprovoznění HTTPS na Wordpressu na našich serverech (na další oblíbené WordPress pluginy se můžete podívat v tomto článku).

Plug-in Really Simple SSL stáhnete na oficiálních stránkách projektu wordpress.org, k dispozici je také podrobná dokumentace.

UPOZORNĚNÍ: Po aktivaci https:// dojde ke zdánlivému "odhlášení" přihlášeného uživatele z administrace. Stane se tak proto, že pro webový prohlížeč je stránka s adresou začínající na https:// zcela nový odlišný web. Webový prohlížeč vám tedy nenabídne uložené heslo a bude potřeba přihlašovací údaje ručně vyplnit.

UPOZORNĚNÍ: Pokud se setkáte s chybou v podobě smyčky přesměrování (redirect loop), lze ji řešit tím, že plug-inu zabráníte zapisovat do souboru .htaccess. Nejprve odstraňte ze souboru .htaccess pravidla týkající se tohoto pluginu (návod zde) a pak přidejte do souboru wp-config.php následující řádek:
define( 'RLRSSSL_DO_NOT_EDIT_HTACCESS', TRUE);

Výkonný a snadno použitelný server nejen pro WordPress

  • snadná správa neomezeného počtu služeb
  • automatická a pravidelná záloha veškerých dat
  • instalace WordPress a dalších aplikací ZDARMA
  • automatická instalace a obnova SSL certifikátů ZDARMA
  • a další...

Postup pro Apache Webserver

Pokud používáte webový server Apache, veškerý provoz z nezabezpečeného HTTP přesměrujete na HTTPS rovněž velice snadno.

Jako správce serveru proveďte nastavení v souboru httpd.conf pomocí konfigurace níže.

Využíváte-li server pouze v rámci webhostingu, přesměrování vyřešte pomocí souboru .htaccess.

Do složky, kterou chcete přesměrovat na HTTPS, vložte .htaccess s následující konfigurací pro přesměrování na HTTPS bez www:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Přesměrování na HTTPS s www:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Na serveru je nutné zapnout modul mod_rewrite, což však u většiny webhostingů není překážkou.

Pokud nechcete přesměrovat celý web, ale pouze jednu konkrétní stránku, použijte tuto konfiguraci:

RewriteEngine On
RewriteRule ^apache-redirect-http-to-https.html$ https://www.yoursite.com/apache-redirect-http-to-https.html [R=301,L]

Postup pro Anginx

Pro nastavení přesměrování na serveru nginx přidejte následující řádky do konfigurace serveru:

server {
listen 80;
server_name nazev-domeny.cz www.nazev-domeny.cz;
rewrite ^ https://$server_name$request_uri? permanent;
}

server {
listen 443;
server_name my.domain.com;

ssl on;

[....]
}