Ricerca nel sito web

Come reindirizzare HTTP a HTTPS su Apache


HTTP (Hyper Text Transfer Protocol) è un protocollo popolare e fondamentale per la comunicazione dei dati sul World Wide Web (WWW ); tipicamente tra un browser web e il server che memorizza i file web. Mentre HTTPS è la versione sicura di HTTP, dove la "S" alla fine sta per "Secure".

Utilizzando HTTPS, tutti i dati tra il tuo browser e il server web vengono crittografati e quindi sicuri. Questo tutorial ti mostrerà come reindirizzare HTTP a HTTPS sul server HTTP Apache in Linux.

Prima di poter impostare un reindirizzamento Apache da HTTP a HTTPS per il tuo dominio, assicurati di avere il certificato SSL installato e mod_rewrite è abilitato in Apache. Per ulteriori informazioni su come configurare SSL su Apache, vedere le seguenti guide.

  1. Come creare certificati e chiavi SSL autofirmati per Apache
  2. Come installare Crittografiamo il certificato SSL su CentOS/RHEL 7
  3. Come installare Crittografiamo il certificato SSL su Debian/Ubuntu

Reindirizzare HTTP a HTTPS su Apache utilizzando il file .htaccess

Per questo metodo, assicurati che mod_rewrite sia abilitato, altrimenti abilitalo in questo modo sui sistemi Ubuntu/Debian.

sudo a2enmod rewrite	[Ubuntu/Debian]

Per gli utenti CentOS/RHEL, assicurati di avere la seguente riga in httpd.conf (supporto mod_rewrite – abilitato per impostazione predefinita).

LoadModule rewrite_module modules/mod_rewrite.so

Ora devi solo modificare o creare il file .htaccess nella directory principale del tuo dominio e aggiungere queste righe per reindirizzare http a https.

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

Ora, quando un visitatore digita http://www.tuodominio.com, il server reindirizzerà automaticamente HTTP a HTTPS https://www.tuodominio.com.

Reindirizzare HTTP a HTTPS su Apache Virtual Host

Inoltre, per forzare tutto il traffico web a utilizzare HTTPS, puoi anche configurare il tuo file host virtuale. Normalmente, ci sono due sezioni importanti nelle configurazioni di un host virtuale se è abilitato un certificato SSL; il primo contiene le configurazioni per la porta non sicura 80.

La seconda è per la porta sicura 443. Per reindirizzare HTTP a HTTPS per tutte le pagine del tuo sito web, apri prima il file host virtuale appropriato. Quindi modificalo aggiungendo la configurazione di seguito.

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>

Salva e chiudi il file, quindi riavvia il server HTTP in questo modo.

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

Mentre è la soluzione più consigliata perché più semplice e sicura.

Potrebbe interessarti leggere questo utile assortimento di articoli sul rafforzamento della sicurezza del server HTTP Apache:

  1. 25 utili trucchi Apache ".htaccess" per proteggere e personalizzare i siti Web
  2. Come proteggere con password le directory Web in Apache utilizzando il file .htaccess
  3. Come nascondere il numero di versione di Apache e altre informazioni sensibili
  4. Proteggi Apache dagli attacchi Brute Force o DDoS utilizzando Mod_Security e Mod_evasive

È tutto! Per condividere eventuali pensieri su questa guida, utilizzare il modulo di feedback riportato di seguito. E ricordati di rimanere sempre connesso a linux-console.net.