Last Updated on 01/02/2023 by administrator
Apache Přesměrování HTTP na HTTPS (Apache Redirect HTTPS)
Apache Přesměrování HTTP na HTTPS (Apache Redirect HTTPS)
Motivace:
Článek pojednává jak přesměrovat HTTP provoz na HTTPS pod službou Apache2.
OS:
Implementace byla prováděna na Ubuntu 22.04 a verzi Apache 2.4.54. Postup bude podobně aplikovatelný některé nižší Ubuntu distribuce a verze Apache 2.4.x i podle [2].
Implementace:
Příklad je uveden pro webovou stráncu test.cz:
Webové stránky WordPress jsou obluhované službou Apache v souboru wordpress.conf ve složce /etc/apache2/sites-available/(může se jednat ale i o jiný konfigurační soubor ve stejné složce):
sudo vi /etc/apache2/sites-available/wordpress.conf
V souboru wordpress.conf přidat pod rubriku <VirtualHost *:80> parametr Redirect permanent / https://test.cz:
úplně nahoru kód níže:
<VirtualHost *:80> UseCanonicalName Off ServerAdmin webmaster@localhost DocumentRoot /var/www/wordpress ServerName test.cz ServerAlias www.test.cz Redirect permanent / https://test.cz </VirtualHost> <VirtualHost *:443> SSLEngine on ServerAdmin webmaster@localhost DocumentRoot /var/www/wordpress ServerName test.cz ServerAlias www.test.cz </VirtualHost>
Provést restart služby apache2:
sudo systemctl restart apache2
Pokud se jedná o web, který je dostupný z internetu, tak na firewallu je nutné mít otevřený nejen TCP/443 ale také port TCP/80. Pokud pak požadavek příjde od klienta na webovou stránku http://test.cz či http://www.test.cz na portu TCP/80, služba Apache pošle klientovi zprávu HTTP s kódem 301, ve kterém je uvedeno, že má použít HTTPS, resp. přesněji stránku https://test.cz. Klient znovu naváže 3-way handshake z webovým serverem, ale na portu TCP/443 a vše již probíhá šifrovaně.
Zdroj:
[1] https://linuxize.com/post/redirect-http-to-https-in-apache/
[2] https://stackoverflow.com/questions/16200501/how-to-automatically-redirect-http-to-https-on-apache-servers