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.
- Jak vytvořit SSL certifikáty a klíče s vlastním podpisem pro Apache
- Jak nainstalovat certifikát Let's Encrypt SSL na CentOS/RHEL 7
- 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:
- 25 užitečných triků Apache „.htaccess“ pro zabezpečení a přizpůsobení webových stránek
- Jak chránit heslem webové adresáře v Apache pomocí souboru .htaccess
- Jak skrýt číslo verze Apache a další citlivé informace
- 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.