Recherche de site Web

Comment rediriger HTTP vers HTTPS sur Apache


HTTP (Hyper Text Transfer Protocol) est un protocole populaire et fondamental pour la communication de données sur le World Wide Web (WWW ); généralement entre un navigateur Web et le serveur qui stocke les fichiers Web. Alors que HTTPS est la version sécurisée de HTTP, où le « S » à la fin signifie « Secure ».

Grâce au HTTPS, toutes les données entre votre navigateur et le serveur Web sont cryptées et donc sécurisées. Ce didacticiel va vous montrer comment rediriger HTTP vers HTTPS sur le serveur HTTP Apache sous Linux.

Avant de pouvoir configurer une redirection Apache HTTP vers HTTPS pour votre domaine, assurez-vous d'avoir un certificat SSL installé et mod_rewrite. est activé dans Apache. Pour plus d'informations sur la configuration de SSL sur Apache, consultez les guides suivants.

  1. Comment créer des certificats et des clés SSL auto-signés pour Apache
  2. Comment installer le certificat SSL Let's Encrypt sur CentOS/RHEL 7
  3. Comment installer le certificat SSL Let's Encrypt sur Debian/Ubuntu

Rediriger HTTP vers HTTPS sur Apache à l'aide du fichier .htaccess

Pour cette méthode, assurez-vous que mod_rewrite est activé, sinon activez-le comme ceci sur les systèmes Ubuntu/Debian.

sudo a2enmod rewrite	[Ubuntu/Debian]

Pour les utilisateurs CentOS/RHEL, assurez-vous d'avoir la ligne suivante dans httpd.conf (prise en charge mod_rewrite – activée par défaut).

LoadModule rewrite_module modules/mod_rewrite.so

Il ne vous reste plus qu'à modifier ou créer le fichier .htaccess dans le répertoire racine de votre domaine et à ajouter ces lignes pour rediriger http vers https.

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

Désormais, lorsqu'un visiteur tape http://www.votredomaine.com, le serveur redirigera automatiquement HTTP vers HTTPS https://www.votredomaine.com.

Rediriger HTTP vers HTTPS sur l'hôte virtuel Apache

De plus, pour forcer tout le trafic Web à utiliser HTTPS, vous pouvez également configurer votre fichier d'hôte virtuel. Normalement, il existe deux sections importantes dans les configurations d'un hôte virtuel si un certificat SSL est activé : le premier contient les configurations pour le port non sécurisé 80.

Le second concerne le port sécurisé 443. Pour rediriger HTTP vers HTTPS pour toutes les pages de votre site Web, ouvrez d'abord le fichier d'hôte virtuel approprié. Modifiez-le ensuite en ajoutant la configuration ci-dessous.

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>

Enregistrez et fermez le fichier, puis redémarrez le serveur HTTP comme ceci.

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

Tandis que est la solution la plus recommandée car elle est plus simple et plus sûre.

Vous aimerez peut-être lire cet assortiment utile d'articles sur le renforcement de la sécurité du serveur HTTP Apache :

  1. 25 astuces Apache « .htaccess » utiles pour sécuriser et personnaliser les sites Web
  2. Comment protéger par mot de passe les répertoires Web dans Apache à l'aide du fichier .htaccess
  3. Comment masquer le numéro de version d'Apache et d'autres informations sensibles
  4. Protégez Apache contre les attaques par force brute ou DDoS à l'aide de Mod_Security et Mod_evasive

C'est tout! Pour partager vos réflexions concernant ce guide, utilisez le formulaire de commentaires ci-dessous. Et n'oubliez pas de toujours rester connecté à linux-console.net.