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.
- Hvordan lage selvsignerte SSL-sertifikater og nøkler for Apache
- Hvordan installerer du Let's Encrypt SSL-sertifikat på CentOS/RHEL 7
- 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:
- 25 nyttige Apache '.htaccess'-triks for å sikre og tilpasse nettsteder
- Hvordan passordbeskytte nettkataloger i Apache ved å bruke .htaccess-fil
- Slik skjuler du Apache-versjonsnummer og annen sensitiv informasjon
- 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.