Hvordan omdirigere HTTP til HTTPS på Apache


HTTP (Hyper Text Transfer Protocol) er en populær så vel som den grunnleggende protokollen for datakommunikasjon på World Wide Web (WWW); vanligvis mellom en nettleser og serveren som lagrer nettfiler. Mens HTTPS er den sikre versjonen av HTTP, der 'S' på slutten står for 'Secure'.

Ved å bruke HTTPS er all data mellom nettleseren din og webserveren kryptert og dermed sikker. Denne opplæringen viser deg hvordan du omdirigerer HTTP til HTTPS på Apache HTTP-server i Linux.

Før du kan sette opp en Apache HTTP til HTTPS-viderekobling for domenet ditt, må du kontrollere at du har SSL-sertifikat installert og mod_rewrite er aktivert i Apache. For mer informasjon om hvordan du setter opp SSL på Apache, se følgende veiledninger.

  1. Hvordan lage selvsignerte SSL-sertifikater og nøkler for Apache
  2. Hvordan installerer du Let's Encrypt SSL-sertifikat på CentOS/RHEL 7
  3. Hvordan installerer du Let's Encrypt SSL-sertifikat på Debian/Ubuntu

Omdiriger HTTP til HTTPS på Apache ved å bruke .htaccess-fil

For denne metoden, sørg for at mod_rewrite er aktivert, ellers aktiver det slik på Ubuntu/Debian-systemer.

$ sudo a2enmod rewrite	[Ubuntu/Debian]

For CentOS/RHEL-brukere, sørg for at du har følgende linje i httpd.conf (mod_rewrite-støtte – aktivert som standard).

LoadModule rewrite_module modules/mod_rewrite.so

Nå trenger du bare å redigere eller opprette .htaccess-fil i domenets rotkatalog og legge til disse linjene for å omdirigere http til https.

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

Nå, når en besøkende skriver inn http://www.dittdomene.com, vil serveren automatisk omdirigere HTTP til HTTPS https://www.dittdomene.com.

Omdiriger HTTP til HTTPS på Apache Virtual Host

I tillegg, for å tvinge all nettrafikk til å bruke HTTPS, kan du også konfigurere den virtuelle vertsfilen. Normalt er det to viktige deler av en virtuell vertskonfigurasjon hvis et SSL-sertifikat er aktivert; den første inneholder konfigurasjoner for den ikke-sikre porten 80.

Den andre er for den sikre porten 443. For å omdirigere HTTP til HTTPS for alle sidene på nettstedet ditt, åpne først den aktuelle virtuelle vertsfilen. Deretter endrer du den ved å legge til konfigurasjonen nedenfor.

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>

Lagre og lukk filen, og start deretter HTTP-serveren på nytt slik.

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

Mens er den mest anbefalte løsningen fordi den er enklere og sikrere.

Du vil kanskje lese disse nyttige utvalget av Apache HTTP-serversikkerhetsherdingsartikler:

  1. 25 nyttige Apache '.htaccess'-triks for å sikre og tilpasse nettsteder
  2. Hvordan passordbeskytte nettkataloger i Apache ved å bruke .htaccess-fil
  3. Slik skjuler du Apache-versjonsnummer og annen sensitiv informasjon
  4. Beskytt Apache mot brute force eller DDoS-angrep ved å bruke Mod_Security og Mod_evasive

Det er alt! For å dele noen tanker angående denne veiledningen, bruk tilbakemeldingsskjemaet nedenfor. Og husk å alltid være koblet til linux-console.net.