Kako preusmeriti HTTP na HTTPS na Apache


HTTP (Hyper Text Transfer Protocol) je priljubljen in tudi temeljni protokol za podatkovno komunikacijo na svetovnem spletu (WWW); običajno med spletnim brskalnikom in strežnikom, ki shranjuje spletne datoteke. Medtem ko je HTTPS varna različica HTTP, kjer je na koncu „S“ „Varno“.

Z uporabo HTTPS so vsi podatki med brskalnikom in spletnim strežnikom šifrirani in tako varni. Ta vadnica vam bo pokazala, kako preusmeriti HTTP na HTTPS na strežniku HTTP Apache v Linuxu.

Preden lahko za svojo domeno nastavite preusmeritev Apache HTTP na HTTPS, se prepričajte, da imate nameščen certifikat SSL in da je v Apacheju omogočen mod_rewrite. Za več informacij o nastavitvi SSL na Apache glejte naslednja navodila.

  1. Kako ustvariti samopodpisana potrdila SSL in ključe za Apache
  2. Kako namestiti šifrirajmo SSL potrdilo na CentOS/RHEL 7
  3. Kako namestiti šifrirajmo SSL potrdilo v Debian/Ubuntu

Preusmerite HTTP na HTTPS v Apacheju z uporabo datoteke .htaccess

Za to metodo se prepričajte, da je mod_rewrite omogočen, drugače pa ga omogočite tako v sistemih Ubuntu/Debian.

$ sudo a2enmod rewrite	[Ubuntu/Debian]

Za uporabnike CentOS/RHEL poskrbite, da imate naslednjo vrstico v httpd.conf (podpora za mod_rewrite - privzeto omogočena).

LoadModule rewrite_module modules/mod_rewrite.so

Zdaj morate samo urediti ali ustvariti datoteko .htaccess v korenskem imeniku domene in dodati te vrstice za preusmeritev http na https.

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

Ko obiskovalec vnese http://www.yourdomain.com , bo strežnik samodejno preusmeril HTTP na HTTPS https://www.yourdomain.com .

Preusmerite HTTP na HTTPS na navideznem gostitelju Apache

Če želite ves spletni promet prisiliti k uporabi HTTPS, lahko konfigurirate tudi datoteko navideznega gostitelja. Običajno obstajata dva pomembna odseka konfiguracij navideznega gostitelja, če je omogočeno potrdilo SSL; prvi vsebuje konfiguracije za nezaščitena vrata 80.

Drugo je za varna vrata 443. Če želite preusmeriti HTTP na HTTPS za vse strani vašega spletnega mesta, najprej odprite ustrezno datoteko navideznega gostitelja. Nato ga spremenite tako, da dodate spodnjo konfiguracijo.

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>

Shranite in zaprite datoteko ter nato znova zaženite strežnik HTTP.

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

Medtem ko je najbolj priporočljiva rešitev, ker je enostavnejša in varnejša.

Morda boste radi prebrali ta uporaben izbor člankov o utrjevanju varnosti strežnika Apache HTTP:

  1. 25 koristnih trikov Apache za ".htaccess" za zaščito in prilagajanje spletnih mest
  2. Kako z geslom zaščititi spletne imenike v Apacheju z uporabo datoteke .htaccess
  3. Kako skriti številko različice Apache in druge občutljive informacije
  4. Zaščitite Apache pred napadi Brute Force ali DDoS z uporabo Mod_Security in Mod_evasive

To je vse! Če želite deliti mnenja o tem priročniku, uporabite spodnji obrazec za povratne informacije. In ne pozabite biti vedno povezani s linux-console.net.