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.
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);
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]
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;
[....]
}