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.
- Come creare certificati e chiavi SSL autofirmati per Apache
- Come installare Crittografiamo il certificato SSL su CentOS/RHEL 7
- 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:
- 25 utili trucchi Apache ".htaccess" per proteggere e personalizzare i siti Web
- Come proteggere con password le directory Web in Apache utilizzando il file .htaccess
- Come nascondere il numero di versione di Apache e altre informazioni sensibili
- 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.