Comment bien gérer la redirection HTTP vers HTTPS?

Configuration d'une redirection HTTP vers HTTPS?

Temps de lecture : 2 minutes

Ce n’est plus un secret pour personne, il est désormais préférable d’avoir un site avec une adresse en HTTPS. D’une part, la navigation est alors plus sûr et d’autre part, les moteurs de recherche apprécient désormais d’avantage les sites qui protègent leurs visiteurs (et ils seront bien nous le rendre!).

Mise en place du chiffrement

Le HTTPS apporte une couche de chiffrement au dessus du protocole HTTP qui lui est chargé de transférer les données entre l’ordinateur de l’internaute et le serveur Web. Pour que le serveur Web réalise ce chiffrement et que l’ordinateur de l’internaute puisse déchiffrer et vérifier l’identité du serveur Web, le protocole HTTPS nécessite la mise en place d’un certificat SSL. Ce dernier peut être acheté auprès d’une autorité de certification payante pour une centaine d’euros par an, ou peut être gratuit et généré automatiquement par l’autorité de certification Let’s Encrypt (comme c’est le cas sur les hébergements Vélhost).

Une fois le certificat installé suivant la méthode de l’hébergeur, le site peut-être appelé en préfixant son URL par « https:// » .

Redirection du HTTP vers le HTTPS

Mais attention, sans configuration particulière le site pourrait encore être accessible en HTTP, même si le HTTPS est activé. L’internaute ne serait alors pas protégé et les moteurs de recherche pourraient continuer d’indexer les pages du site en HTTP.

Il faut alors mettre en place une redirection et celle-ci peut être réalisée à plusieurs niveaux:

  • dans la configuration du serveur Web
  • dans le répertoire racine du site
  • dans le CMS

Pour réaliser cette redirection au niveau du serveur Web, par exemple sur un serveur Web Apache2, il suffit de garder un « Virtualhost » sur le port 80 et effectuer la redirection comme suit :

<VirtualHost *:80>
      ServerName velhost.fr
       
      RewriteEngine on
      ReWriteCond %{SERVER_PORT} !^443$
      RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
</VirtualHost>

La même redirection peut se faire dans le répertoire racine du site Internet, en créant un fichier nommé .htaccess contenant ceci :

RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]

De cette manière, lorsque le site est appelé en HTTP, le serveur Web indiquera au navigateur la redirection vers la même adresse mais en HTTPS.

Enfin, au niveau du CMS, il faut vérifier que ce dernier est en mesure de répondre sur une URL en https://. Dans WordPress par exemple, il est nécessaire d’ajuster le champs « Adresse Web de WordPress (URL) » dans les réglages généraux afin d’y ajouter le préfixe https://.

Référencement

Pour un référencement optimal, la redirection doit être permanente et non temporaire. Dans la configuration évoquée précédemment, cela se traduit par le paramètre « R » qui doit être égal à 301 (redirection permanente, 302 aurait indiqué une redirection temporaire).