Com redirigir HTTP a HTTPS a Apache


HTTP (Hyper Text Transfer Protocol) és un protocol popular i fonamental per a la comunicació de dades a la World Wide Web (WWW); normalment entre un navegador web i el servidor que emmagatzema fitxers web. Mentre que HTTPS és la versió segura d'HTTP, on la S al final significa Segur.

Mitjançant HTTPS, totes les dades entre el vostre navegador i el servidor web es xifren de manera segura. Aquest tutorial us mostrarà com redirigir HTTP a HTTPS al servidor HTTP Apache a Linux.

Abans de poder configurar una redirecció d'HTTP a HTTPS d'Apache per al vostre domini, assegureu-vos que tingueu instal·lat el certificat SSL i que mod_rewrite estigui habilitat a Apache. Per obtenir més informació sobre com configurar SSL a Apache, consulteu les guies següents.

  1. Com crear claus i certificats SSL autofirmats per a Apache
  2. Com instal·lar el certificat SSL Let's Encrypt a CentOS/RHEL 7
  3. Com instal·lar el certificat SSL Let's Encrypt a Debian/Ubuntu

Redirigeix HTTP a HTTPS a Apache mitjançant el fitxer .htaccess

Per a aquest mètode, assegureu-vos que mod_rewrite estigui habilitat, en cas contrari, activeu-lo així als sistemes Ubuntu/Debian.

$ sudo a2enmod rewrite	[Ubuntu/Debian]

Per als usuaris de CentOS/RHEL, assegureu-vos que teniu la línia següent a httpd.conf (suport mod_rewrite, activat per defecte).

LoadModule rewrite_module modules/mod_rewrite.so

Ara només cal editar o crear un fitxer .htaccess al directori arrel del vostre domini i afegir aquestes línies per redirigir http a https.

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

Ara, quan un visitant escrigui http://www.yourdomain.com, el servidor redirigirà automàticament HTTP a HTTPS https://www.yourdomain.com.

Redirigeix HTTP a HTTPS a Apache Virtual Host

A més, per forçar tot el trànsit web a utilitzar HTTPS, també podeu configurar el vostre fitxer d'amfitrió virtual. Normalment, hi ha dues seccions importants de la configuració d'un host virtual si un certificat SSL està habilitat; el primer conté configuracions per al port no segur 80.

El segon és per al port segur 443. Per redirigir HTTP a HTTPS per a totes les pàgines del vostre lloc web, primer obriu el fitxer d'amfitrió virtual adequat. A continuació, modifiqueu-lo afegint la configuració següent.

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>

Deseu i tanqueu el fitxer i, a continuació, reinicieu el servidor HTTP d'aquesta manera.

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

Mentre que és la solució més recomanada perquè és més senzilla i segura.

Potser us agradaria llegir aquest útil assortiment d'articles sobre l'enfortiment de la seguretat del servidor HTTP Apache:

  1. 25 trucs útils d'Apache .htaccess per protegir i personalitzar llocs web
  2. Com protegir amb contrasenya els directoris web a Apache mitjançant el fitxer .htaccess
  3. Com amagar el número de versió d'Apache i una altra informació sensible
  4. Protegiu Apache contra atacs de força bruta o DDoS mitjançant Mod_Security i Mod_evasive

Això és tot! Per compartir qualsevol reflexió sobre aquesta guia, feu servir el formulari de comentaris que trobareu a continuació. I recordeu estar sempre connectat a linux-console.net.