Vyhledávání na webu

Jak přesměrovat HTTP na HTTPS na Apache


HTTP (Hyper Text Transfer Protocol) je populární a zároveň základní protokol pro datovou komunikaci na World Wide Web (WWW ); obvykle mezi webovým prohlížečem a serverem, který ukládá webové soubory. Zatímco HTTPS je zabezpečená verze HTTP, kde „S“ na konci znamená „Secure“.

Pomocí HTTPS jsou všechna data mezi vaším prohlížečem a webovým serverem zašifrována a tudíž zabezpečena. Tento tutoriál vám ukáže, jak přesměrovat HTTP na HTTPS na serveru Apache HTTP v systému Linux.

Než budete moci nastavit Apache HTTP na přesměrování HTTPS pro vaši doménu, ujistěte se, že máte nainstalovaný SSL certifikát a mod_rewrite je povoleno v Apache. Další informace o tom, jak nastavit SSL na Apache, najdete v následujících průvodcích.

  1. Jak vytvořit SSL certifikáty a klíče s vlastním podpisem pro Apache
  2. Jak nainstalovat certifikát Let's Encrypt SSL na CentOS/RHEL 7
  3. Jak nainstalovat Let's Encrypt SSL certifikát na Debian/Ubuntu

Přesměrujte HTTP na HTTPS na Apache pomocí souboru .htaccess

U této metody se ujistěte, že je povoleno mod_rewrite, jinak jej takto povolte na systémech Ubuntu/Debian.

sudo a2enmod rewrite	[Ubuntu/Debian]

Pro uživatele CentOS/RHEL se ujistěte, že máte následující řádek v httpd.conf (podpora mod_rewrite – ve výchozím nastavení povoleno).

LoadModule rewrite_module modules/mod_rewrite.so

Nyní stačí upravit nebo vytvořit soubor .htaccess v kořenovém adresáři vaší domény a přidat tyto řádky pro přesměrování http na https.

RewriteEngine On 
RewriteCond %{HTTPS}  !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

Když nyní návštěvník zadá http://www.yourdomain.com, server automaticky přesměruje HTTP na HTTPS https://www.yourdomain.com.

Přesměrujte HTTP na HTTPS na virtuálním hostiteli Apache

Chcete-li přinutit veškerý webový provoz k používání HTTPS, můžete také nakonfigurovat soubor virtuálního hostitele. Pokud je povolen SSL certifikát, obvykle existují dvě důležité části konfigurace virtuálního hostitele; první obsahuje konfigurace pro nezabezpečený port 80.

Druhý je pro zabezpečený port 443. Chcete-li přesměrovat HTTP na HTTPS pro všechny stránky vašeho webu, nejprve otevřete příslušný soubor virtuálního hostitele. Poté jej upravte přidáním konfigurace níže.

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName www.yourdomain.com
   Redirect / https://www.yourdomain.com
</VirtualHost>

<VirtualHost _default_:443>
   ServerName www.yourdomain.com
   DocumentRoot /usr/local/apache2/htdocs
   SSLEngine On
etc...
</VirtualHost>

Uložte a zavřete soubor a restartujte server HTTP takto.

sudo systemctl restart apache2     [Ubuntu/Debian]
sudo systemctl restart httpd	     [RHEL/CentOS]

Zatímco je nejvíce doporučeným řešením, protože je jednodušší a bezpečnější.

Možná si budete chtít přečíst tento užitečný sortiment článků o posílení zabezpečení serveru Apache HTTP:

  1. 25 užitečných triků Apache „.htaccess“ pro zabezpečení a přizpůsobení webových stránek
  2. Jak chránit heslem webové adresáře v Apache pomocí souboru .htaccess
  3. Jak skrýt číslo verze Apache a další citlivé informace
  4. Chraňte Apache před útoky hrubou silou nebo DDoS pomocí Mod_Security a Mod_evasive

To je vše! Chcete-li se podělit o jakékoli myšlenky týkající se této příručky, použijte níže uvedený formulář zpětné vazby. A nezapomeňte vždy zůstat ve spojení s linux-console.net.